aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-16 19:19:48 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-16 19:19:48 +0100
commitbd3b16c660e763f32f390ea35c38f7c1e0addd95 (patch)
tree854c21f950a89f73def261ceb677ff104e850075
parent6567dbe9170464e7bd89e86583201b6e4c7dfb9d (diff)
downloadsciteco-bd3b16c660e763f32f390ea35c38f7c1e0addd95.tar.gz
fixed clearing message line: do not display an empty message line (which can mean an empty line sent to stdout)
-rw-r--r--cmdline.cpp2
-rw-r--r--interface-gtk.cpp8
-rw-r--r--interface-gtk.h1
-rw-r--r--interface-ncurses.cpp17
-rw-r--r--interface-ncurses.h1
-rw-r--r--interface.h1
6 files changed, 27 insertions, 3 deletions
diff --git a/cmdline.cpp b/cmdline.cpp
index 2fe2b21..5018054 100644
--- a/cmdline.cpp
+++ b/cmdline.cpp
@@ -35,7 +35,7 @@ cmdline_keypress(gchar key)
* Cleanup messages, popups, etc...
*/
interface.popup_clear();
- interface.msg(Interface::MSG_USER, " ");
+ interface.msg_clear();
/*
* Process immediate editing commands
diff --git a/interface-gtk.cpp b/interface-gtk.cpp
index d348a09..70b98b7 100644
--- a/interface-gtk.cpp
+++ b/interface-gtk.cpp
@@ -103,6 +103,14 @@ InterfaceGtk::vmsg(MessageType type, const gchar *fmt, va_list ap)
}
void
+InterfaceGtk::msg_clear(void)
+{
+ gtk_info_bar_set_message_type(GTK_INFO_BAR(info_widget),
+ GTK_MESSAGE_OTHER);
+ gtk_label_set_text(GTK_LABEL(message_widget), "");
+}
+
+void
InterfaceGtk::info_update(QRegister *reg)
{
gchar buf[255];
diff --git a/interface-gtk.h b/interface-gtk.h
index 1c62b4a..ac524d9 100644
--- a/interface-gtk.h
+++ b/interface-gtk.h
@@ -35,6 +35,7 @@ public:
}
void vmsg(MessageType type, const gchar *fmt, va_list ap);
+ void msg_clear(void);
inline sptr_t
ssm(unsigned int iMessage, uptr_t wParam = 0, sptr_t lParam = 0)
diff --git a/interface-ncurses.cpp b/interface-ncurses.cpp
index f57af4e..24c455f 100644
--- a/interface-ncurses.cpp
+++ b/interface-ncurses.cpp
@@ -75,7 +75,7 @@ InterfaceNCurses::InterfaceNCurses()
draw_info();
/* scintilla will be refreshed in event loop */
- msg(MSG_USER, " ");
+ msg_clear();
cmdline_update("");
endwin();
@@ -97,7 +97,7 @@ InterfaceNCurses::resize_all_windows(void)
draw_info();
/* scintilla will be refreshed in event loop */
- msg(MSG_USER, " "); /* FIXME: use saved message */
+ msg_clear(); /* FIXME: use saved message */
cmdline_update();
}
@@ -125,6 +125,19 @@ InterfaceNCurses::vmsg(MessageType type, const gchar *fmt, va_list ap)
}
void
+InterfaceNCurses::msg_clear(void)
+{
+ if (isendwin()) /* batch mode */
+ return;
+
+ wmove(msg_window, 0, 0);
+ wbkgdset(msg_window, ' ' | SCI_COLOR_ATTR(COLOR_BLACK, COLOR_WHITE));
+ wclrtoeol(msg_window);
+
+ wrefresh(msg_window);
+}
+
+void
InterfaceNCurses::draw_info(void)
{
if (isendwin()) /* batch mode */
diff --git a/interface-ncurses.h b/interface-ncurses.h
index 28f2e72..304d9ac 100644
--- a/interface-ncurses.h
+++ b/interface-ncurses.h
@@ -43,6 +43,7 @@ public:
~InterfaceNCurses();
void vmsg(MessageType type, const gchar *fmt, va_list ap);
+ void msg_clear(void);
inline sptr_t
ssm(unsigned int iMessage, uptr_t wParam = 0, sptr_t lParam = 0)
diff --git a/interface.h b/interface.h
index f89307e..223ec10 100644
--- a/interface.h
+++ b/interface.h
@@ -62,6 +62,7 @@ public:
vmsg(type, fmt, ap);
va_end(ap);
}
+ virtual void msg_clear(void) {}
virtual sptr_t ssm(unsigned int iMessage,
uptr_t wParam = 0, sptr_t lParam = 0) = 0;