gnome-utils r8261 - trunk/logview
- From: cosimoc svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-utils r8261 - trunk/logview
- Date: Tue, 23 Dec 2008 13:26:28 +0000 (UTC)
Author: cosimoc
Date: Tue Dec 23 13:26:27 2008
New Revision: 8261
URL: http://svn.gnome.org/viewvc/gnome-utils?rev=8261&view=rev
Log:
First implementation of focus handling for the LogviewFindbar.
Modified:
trunk/logview/logview-findbar.c
trunk/logview/logview-findbar.h
trunk/logview/logview.c
Modified: trunk/logview/logview-findbar.c
==============================================================================
--- trunk/logview/logview-findbar.c (original)
+++ trunk/logview/logview-findbar.c Tue Dec 23 13:26:27 2008
@@ -19,6 +19,7 @@
#include <gtk/gtk.h>
#include <glib/gi18n.h>
+#include <gdk/gdkkeysyms.h>
#include "logview-findbar.h"
@@ -97,6 +98,21 @@
g_signal_emit (findbar, signals[TEXT_CHANGED], 0, findbar->priv->string, NULL);
}
+static gboolean
+entry_key_press_event_cb (GtkWidget *entry,
+ GdkEventKey *event,
+ gpointer user_data)
+{
+ LogviewFindbar *findbar = user_data;
+
+ if (event->keyval == GDK_Escape) {
+ gtk_widget_hide (GTK_WIDGET (findbar));
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static void
logview_findbar_init (LogviewFindbar *findbar)
{
@@ -168,6 +184,16 @@
G_CALLBACK (entry_activate_cb), findbar);
g_signal_connect (priv->entry, "changed",
G_CALLBACK (entry_changed_cb), findbar);
+ g_signal_connect (priv->entry, "key-press-event",
+ G_CALLBACK (entry_key_press_event_cb), findbar);
+}
+
+static void
+do_grab_focus (GtkWidget *widget)
+{
+ LogviewFindbar *findbar = LOGVIEW_FINDBAR (widget);
+
+ gtk_widget_grab_focus (findbar->priv->entry);
}
static void
@@ -184,9 +210,12 @@
logview_findbar_class_init (LogviewFindbarClass *klass)
{
GObjectClass *oclass = G_OBJECT_CLASS (klass);
+ GtkWidgetClass *wclass = GTK_WIDGET_CLASS (klass);
oclass->finalize = do_finalize;
+ wclass->grab_focus = do_grab_focus;
+
signals[PREVIOUS] = g_signal_new ("previous",
G_OBJECT_CLASS_TYPE (oclass),
G_SIGNAL_RUN_FIRST,
@@ -222,3 +251,12 @@
widget = g_object_new (LOGVIEW_TYPE_FINDBAR, NULL);
return widget;
}
+
+void
+logview_findbar_open (LogviewFindbar *findbar)
+{
+ g_assert (LOGVIEW_IS_FINDBAR (findbar));
+
+ gtk_widget_show (GTK_WIDGET (findbar));
+ gtk_widget_grab_focus (GTK_WIDGET (findbar));
+}
Modified: trunk/logview/logview-findbar.h
==============================================================================
--- trunk/logview/logview-findbar.h (original)
+++ trunk/logview/logview-findbar.h Tue Dec 23 13:26:27 2008
@@ -61,6 +61,7 @@
/* public methods */
GtkWidget * logview_findbar_new (void);
+void logview_findbar_open (LogviewFindbar *findbar);
const char * logview_findbar_get_text (LogviewFindbar *findbar);
G_END_DECLS
Modified: trunk/logview/logview.c
==============================================================================
--- trunk/logview/logview.c (original)
+++ trunk/logview/logview.c Tue Dec 23 13:26:27 2008
@@ -449,8 +449,7 @@
{
g_assert (LOGVIEW_IS_WINDOW (logview));
- gtk_widget_show (logview->priv->find_bar);
-// logview_findbar_grab_focus (LOGVIEW_FINDBAR (logview->priv->find_bar));
+ logview_findbar_open (LOGVIEW_FINDBAR (logview->priv->find_bar));
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]