[maemo-commits] [maemo-commits] r9349 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Jan 25 16:49:54 EET 2007
- Previous message: [maemo-commits] r9347 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Next message: [maemo-commits] r9350 - in projects/haf/trunk/maemo-af-desktop: . hildon-navigator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: mitch Date: 2007-01-25 16:49:44 +0200 (Thu, 25 Jan 2007) New Revision: 9349 Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkaccellabel.c projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtklabel.c projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenushell.c projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtksettings.c projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkwindow.c Log: 2007-01-25 Michael Natterer <mitch at imendio.com> Port over, clean up and fixed the hildon-keyboard-shortcuts patch. Also prevents invocation of shortcuts now (not only disables them visually). * gtk/gtksettings.c: add the setting. * gtk/gtkaccellabel.c * gtk/gtklabel.c: disable them visually. * gtk/gtkwindow.c * gtk/gtkmenushell.c: disable their invocation. Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-01-25 14:25:13 UTC (rev 9348) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-01-25 14:49:44 UTC (rev 9349) @@ -1,3 +1,17 @@ +2007-01-25 Michael Natterer <mitch at imendio.com> + + Port over, clean up and fixed the hildon-keyboard-shortcuts patch. + Also prevents invocation of shortcuts now (not only disables them + visually). + + * gtk/gtksettings.c: add the setting. + + * gtk/gtkaccellabel.c + * gtk/gtklabel.c: disable them visually. + + * gtk/gtkwindow.c + * gtk/gtkmenushell.c: disable their invocation. + Thu Jan 25 14:44:44 2007 Tim Janik <timj at imendio.com> * gtk/gtkimmulticontext.h: Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkaccellabel.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkaccellabel.c 2007-01-25 14:25:13 UTC (rev 9348) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkaccellabel.c 2007-01-25 14:49:44 UTC (rev 9349) @@ -661,6 +661,10 @@ gboolean gtk_accel_label_refetch (GtkAccelLabel *accel_label) { +#ifdef MAEMO_CHANGES + gboolean keyboard_shortcuts; +#endif /* MAEMO_CHANGES */ + g_return_val_if_fail (GTK_IS_ACCEL_LABEL (accel_label), FALSE); if (accel_label->accel_string) @@ -669,7 +673,15 @@ accel_label->accel_string = NULL; } +#ifdef MAEMO_CHANGES + g_object_get (gtk_widget_get_settings (GTK_WIDGET (accel_label)), + "hildon-keyboard-shortcuts", &keyboard_shortcuts, + NULL); + + if (keyboard_shortcuts && accel_label->accel_closure) +#else if (accel_label->accel_closure) +#endif /* MAEMO_CHANGES */ { GtkAccelKey *key = gtk_accel_group_find (accel_label->accel_group, find_accel, accel_label->accel_closure); Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtklabel.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtklabel.c 2007-01-25 14:25:13 UTC (rev 9348) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtklabel.c 2007-01-25 14:49:44 UTC (rev 9349) @@ -27,6 +27,9 @@ #include <math.h> #include <string.h> #include "gtklabel.h" +#ifdef MAEMO_CHANGES +#include "gtkaccellabel.h" +#endif /* MAEMO_CHANGES */ #include "gtkdnd.h" #include "gtkmain.h" #include "gtkmarshalers.h" @@ -965,11 +968,78 @@ gtk_label_setup_mnemonic (label, label->mnemonic_keyval); } +#ifdef MAEMO_CHANGES + static void +keyboard_shortcuts_change_notify (GtkLabel *label) +{ + gtk_label_recalculate (label); + if (GTK_IS_ACCEL_LABEL (label)) + gtk_accel_label_refetch (GTK_ACCEL_LABEL (label)); +} + +static void +traverse_container (GtkWidget *widget, + gpointer data) +{ + if (GTK_IS_LABEL (widget)) + keyboard_shortcuts_change_notify (GTK_LABEL (widget)); + else if (GTK_IS_CONTAINER (widget)) + gtk_container_forall (GTK_CONTAINER (widget), traverse_container, data); +} + +static void +hildon_label_setting_changed (GtkSettings *settings) +{ + GList *list, *l; + + list = gtk_window_list_toplevels (); + + for (l = list; l ; l = l->next) + { + GtkWidget *widget = l->data; + + if (gtk_widget_get_settings (widget) == settings) + gtk_container_forall (GTK_CONTAINER (widget), + traverse_container, NULL); + } + + g_list_free (list); +} + +#endif /* MAEMO_CHANGES */ + +static void gtk_label_screen_changed (GtkWidget *widget, GdkScreen *old_screen) { +#ifdef MAEMO_CHANGES + GtkSettings *settings; + gboolean keyboard_shortcuts_connected; + + if (!gtk_widget_has_screen (widget)) + return; + + settings = gtk_widget_get_settings (widget); + + keyboard_shortcuts_connected = + GPOINTER_TO_INT (g_object_get_data (G_OBJECT (settings), + "hildon-label-connected")); + + if (! keyboard_shortcuts_connected) + { + g_signal_connect (settings, "notify::hildon-keyboard-shortcuts", + G_CALLBACK (hildon_label_setting_changed), + NULL); + + g_object_set_data (G_OBJECT (settings), "hildon-label-connected", + GINT_TO_POINTER (TRUE)); + } + + keyboard_shortcuts_change_notify (GTK_LABEL (widget)); +#else gtk_label_clear_layout (GTK_LABEL (widget)); +#endif /* MAEMO_CHANGES */ } static void @@ -1458,9 +1528,21 @@ const gchar *pattern) { PangoAttrList *attrs; +#ifdef MAEMO_CHANGES + gboolean keyboard_shortcuts; +#endif /* MAEMO_CHANGES */ + g_return_if_fail (GTK_IS_LABEL (label)); + +#ifdef MAEMO_CHANGES + g_object_get (gtk_widget_get_settings (GTK_WIDGET (label)), + "hildon-keyboard-shortcuts", &keyboard_shortcuts, + NULL); + if (keyboard_shortcuts && pattern) +#else if (pattern) +#endif /* MAEMO_CHANGES */ attrs = gtk_label_pattern_to_attrs (label, pattern); else attrs = NULL; Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenushell.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenushell.c 2007-01-25 14:25:13 UTC (rev 9348) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenushell.c 2007-01-25 14:49:44 UTC (rev 9349) @@ -701,7 +701,10 @@ GdkEventKey *event) { GtkMenuShell *menu_shell; - +#ifdef MAEMO_CHANGES + gboolean keyboard_shortcuts; +#endif /* MAEMO_CHANGES */ + g_return_val_if_fail (GTK_IS_MENU_SHELL (widget), FALSE); g_return_val_if_fail (event != NULL, FALSE); @@ -713,6 +716,14 @@ if (gtk_bindings_activate_event (GTK_OBJECT (widget), event)) return TRUE; +#ifdef MAEMO_CHANGES + g_object_get (gtk_widget_get_settings (widget), + "hildon-keyboard-shortcuts", &keyboard_shortcuts, + NULL); + if (!keyboard_shortcuts) + return FALSE; +#endif /* MAEMO_CHANGES */ + return gtk_menu_shell_activate_mnemonic (menu_shell, event); } Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtksettings.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtksettings.c 2007-01-25 14:25:13 UTC (rev 9348) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtksettings.c 2007-01-25 14:49:44 UTC (rev 9349) @@ -95,7 +95,10 @@ PROP_KEYNAV_CURSOR_ONLY, PROP_KEYNAV_WRAP_AROUND, PROP_ERROR_BELL, - PROP_COLOR_HASH + PROP_COLOR_HASH, +#ifdef MAEMO_CHANGES + PROP_KEYBOARD_SHORTCUTS +#endif /* MAEMO_CHANGES */ }; @@ -571,6 +574,17 @@ GTK_PARAM_READABLE)); class_n_properties++; + +#ifdef MAEMO_CHANGES + result = settings_install_property_parser (class, + g_param_spec_boolean ("hildon-keyboard-shortcuts", + P_("Visual keyboard shortcut cues"), + P_("Whether menus should have visible accelerators and mnemonics"), + TRUE, + GTK_PARAM_READWRITE), + NULL); + g_assert (result == PROP_KEYBOARD_SHORTCUTS); +#endif /* MAEMO_CHANGES */ } static void Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkwindow.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkwindow.c 2007-01-25 14:25:13 UTC (rev 9348) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkwindow.c 2007-01-25 14:49:44 UTC (rev 9349) @@ -4691,9 +4691,18 @@ { GtkWindow *window = GTK_WINDOW (widget); gboolean handled = FALSE; +#ifdef MAEMO_CHANGES + gboolean keyboard_shortcuts; + g_object_get (gtk_widget_get_settings (widget), + "hildon-keyboard-shortcuts", &keyboard_shortcuts, + NULL); + /* handle mnemonics and accelerators */ + if (keyboard_shortcuts && !handled) +#else if (!handled) +#endif /* MAEMO_CHANGES */ handled = gtk_window_activate_key (window, event); /* handle focus widget key events */
- Previous message: [maemo-commits] r9347 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Next message: [maemo-commits] r9350 - in projects/haf/trunk/maemo-af-desktop: . hildon-navigator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]