gdm r6641 - in trunk: . gui/user-switch-applet
- From: mccann svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r6641 - in trunk: . gui/user-switch-applet
- Date: Wed, 17 Dec 2008 02:26:05 +0000 (UTC)
Author: mccann
Date: Wed Dec 17 02:26:05 2008
New Revision: 6641
URL: http://svn.gnome.org/viewvc/gdm?rev=6641&view=rev
Log:
2008-12-16 William Jon McCann <jmccann redhat com>
* gui/user-switch-applet/applet.c (on_menu_key_press_event):
* gui/user-switch-applet/gdm-entry-menu-item.c (send_focus_change),
(gdm_entry_menu_item_select), (gdm_entry_menu_item_deselect),
(on_entry_move_focus), (gdm_entry_menu_item_init):
Fix some of the focus issues.
Modified:
trunk/ChangeLog
trunk/gui/user-switch-applet/applet.c
trunk/gui/user-switch-applet/gdm-entry-menu-item.c
Modified: trunk/gui/user-switch-applet/applet.c
==============================================================================
--- trunk/gui/user-switch-applet/applet.c (original)
+++ trunk/gui/user-switch-applet/applet.c Wed Dec 17 02:26:05 2008
@@ -881,9 +881,12 @@
entry = gdm_entry_menu_item_get_entry (GDM_ENTRY_MENU_ITEM (adata->user_item));
- gtk_widget_event (entry, (GdkEvent *)event);
-
- return FALSE;
+ if (GTK_WIDGET_HAS_FOCUS (entry)) {
+ gtk_widget_event (entry, (GdkEvent *)event);
+ return TRUE;
+ } else {
+ return FALSE;
+ }
}
static void
Modified: trunk/gui/user-switch-applet/gdm-entry-menu-item.c
==============================================================================
--- trunk/gui/user-switch-applet/gdm-entry-menu-item.c (original)
+++ trunk/gui/user-switch-applet/gdm-entry-menu-item.c Wed Dec 17 02:26:05 2008
@@ -110,10 +110,11 @@
g_object_ref (widget);
- if (in)
+ if (in) {
GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- else
+ } else {
GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
+ }
fevent->focus_change.type = GDK_FOCUS_CHANGE;
fevent->focus_change.window = g_object_ref (widget->window);
@@ -156,14 +157,15 @@
gdm_entry_menu_item_select (GtkItem *item)
{
g_return_if_fail (GDM_IS_ENTRY_MENU_ITEM (item));
- /* We ignore it */
+ send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), TRUE);
}
static void
gdm_entry_menu_item_deselect (GtkItem *item)
{
g_return_if_fail (GDM_IS_ENTRY_MENU_ITEM (item));
- /* We ignore it */
+
+ send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), FALSE);
}
static void
@@ -214,6 +216,18 @@
}
static void
+on_entry_move_focus (GtkWidget *widget,
+ GtkDirectionType direction,
+ GdmEntryMenuItem *item)
+{
+ g_debug ("focus move");
+ send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), FALSE);
+ g_signal_emit_by_name (item,
+ "move-focus",
+ GTK_DIR_TAB_FORWARD);
+}
+
+static void
gdm_entry_menu_item_init (GdmEntryMenuItem *item)
{
PangoFontDescription *fontdesc;
@@ -230,12 +244,19 @@
gtk_box_pack_start (GTK_BOX (item->hbox), item->image, FALSE, FALSE, 0);
item->entry = gtk_text_view_new ();
+ gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (item->entry), FALSE);
+ gtk_text_view_set_editable (GTK_TEXT_VIEW (item->entry), TRUE);
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (item->entry),
GTK_WRAP_WORD);
g_signal_connect (item->entry,
"show",
G_CALLBACK (on_entry_show),
item);
+ g_signal_connect (item->entry,
+ "move-focus",
+ G_CALLBACK (on_entry_move_focus),
+ item);
+
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (item->entry));
gtk_text_buffer_set_text (buffer, _("Status"), 0);
g_signal_connect (buffer,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]