void dt_control_key_accelerators_off(struct dt_control_t *s) { gtk_window_remove_accel_group( GTK_WINDOW(dt_ui_main_window(darktable.gui->ui)), darktable.control->accelerators); s->key_accelerators_on = 0; }
static void note_page_unmapped (GtkWidget *page, GtkAccelGroup *accel_group) { GtkWidget *dialog = gtk_widget_get_toplevel (GTK_WIDGET (page)); gtk_window_remove_accel_group (GTK_WINDOW (dialog), accel_group); }
bool Buttons_press(ButtonMask& buttons, guint button, guint state) { if(buttons == 0 && bitfield_enable(buttons, ButtonMask_for_event_button(button)) != 0) { ASSERT_MESSAGE(g_accel_enabled, "Buttons_press: accelerators not enabled"); g_accel_enabled = false; for(WindowSet::iterator i = g_accel_windows.begin(); i != g_accel_windows.end(); ++i) { GtkWindow* toplevel = *i; ASSERT_MESSAGE(window_has_accel(toplevel), "ERROR"); ASSERT_MESSAGE(GTK_WIDGET_TOPLEVEL(toplevel), "disabling accel for non-toplevel window"); gtk_window_remove_accel_group(toplevel, global_accel); #if 0 globalOutputStream() << reinterpret_cast<unsigned int>(toplevel) << ": disabled global accelerators\n"; #endif #if 0 accel_group_test(toplevel, global_accel); #endif } } buttons = bitfield_enable(buttons, ButtonMask_for_event_button(button)); #if 0 globalOutputStream() << "Buttons_press: "; print_buttons(buttons); #endif return false; }
JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkWindow_gtk_1window_1remove_1accel_1group ( JNIEnv* env, jclass cls, jlong _self, jlong _accelGroup ) { GtkWindow* self; GtkAccelGroup* accelGroup; // convert parameter self self = (GtkWindow*) _self; // convert parameter accelGroup accelGroup = (GtkAccelGroup*) _accelGroup; // call function gtk_window_remove_accel_group(self, accelGroup); // cleanup parameter self // cleanup parameter accelGroup }
/* * prepare GTK, create the menu/messages window, enter the first loop */ static void gtkui_init(void) { DEBUG_MSG("gtk_init"); g_thread_init(NULL); if(!gtk_init_check(0, NULL)) { FATAL_ERROR("GTK+ failed to initialize. Is X running?"); return; } gtkui_conf_read(); gtkui_setup(); /* gui init loop, calling gtk_main_quit will cause * this to exit so we can proceed to the main loop * later. */ gtk_main(); /* remove the keyboard shortcuts for the setup menus */ gtk_window_remove_accel_group(GTK_WINDOW (window), accel_group); GBL_UI->initialized = 1; }
/* * prepare GTK, create the menu/messages window, enter the first loop */ static void gtkui_init(void) { DEBUG_MSG("gtk_init"); // g_thread_init has been deprecated since version 2.32 and should not be used in newly-written code. This function is no longer necessary. The GLib threading system is automatically initialized at the start of your program. #if !(GLIB_CHECK_VERSION(2,32,0)) g_thread_init(NULL); #endif if(!gtk_init_check(0, NULL)) { FATAL_ERROR("GTK+ failed to initialize. Is X running?"); return; } gtkui_conf_read(); gtkui_setup(); /* initialize timer */ progress_timer = g_timer_new(); /* gui init loop, calling gtk_main_quit will cause * this to exit so we can proceed to the main loop * later. */ gtk_main(); /* remove the keyboard shortcuts for the setup menus */ gtk_window_remove_accel_group(GTK_WINDOW (window), accel_group); GBL_UI->initialized = 1; }
static gboolean callback_filter_selected(GtkWidget* widget, gpointer data) { if(g_MainWindow.accelUnsafeActive) { gtk_window_remove_accel_group(GTK_WINDOW(g_MainWindow.window), g_MainWindow.accelUnsafe); g_MainWindow.accelUnsafeActive = FALSE; } return FALSE; }
/** * create_gens_window_menubar(): Create the menu bar. */ void gens_window_create_menubar(void) { if (gens_menu_bar != NULL) { // Menu bar already exists. Delete it. gtk_widget_destroy(gens_menu_bar); gens_menu_clear(); } if (!vdraw_get_fullscreen() && Settings.showMenuBar) { // Create a menu bar. gens_menu_bar = gtk_menu_bar_new(); gtk_widget_show(gens_menu_bar); gtk_box_pack_start(GTK_BOX(gens_vbox_main), gens_menu_bar, FALSE, FALSE, 0); } else { // Create a popup menu. gens_menu_bar = gtk_menu_new(); } // Connect the menu "deactivate" signal. // For whatever reason, GtkMenuShell has a "deactivate" signal, // but not an "activate" signal. g_signal_connect((gpointer)gens_menu_bar, "deactivate", G_CALLBACK(gens_menu_deactivate), NULL); // Accelerator Group. static GtkAccelGroup *gens_menu_accel_group = NULL; if (gens_menu_accel_group != NULL) { // Delete the accelerator group. gtk_window_remove_accel_group(GTK_WINDOW(gens_window), gens_menu_accel_group); g_object_unref(gens_menu_accel_group); } // Create an accelerator group. gens_menu_accel_group = gtk_accel_group_new(); // Parse the menus. gens_menu_parse(&gmiMain[0], GTK_MENU_SHELL(gens_menu_bar), gens_menu_accel_group); // Add the accel group. gtk_window_add_accel_group(GTK_WINDOW(gens_window), gens_menu_accel_group); // Synchronize the menus. Sync_Gens_Window(); #ifdef GDK_WINDOWING_QUARTZ // Set the menu bar as the MacOS X menu bar. if (!vdraw_get_fullscreen() && Settings.showMenuBar) ige_mac_menu_set_menu_bar(GTK_MENU_SHELL(gens_menu_bar)); #endif }
static void cterm_cleanse_config(CTerm* term) { if(term->config.keys != NULL) { gtk_window_remove_accel_group(term->window, term->config.keys); g_object_unref(G_OBJECT(term->config.keys)); term->config.keys = NULL; } if(term->config.font != NULL) { free(term->config.font); term->config.font = NULL; } }
void global_accel_disconnect_window( ui::Window window ){ #if 1 GlobalPressedKeys_disconnect( window ); g_signal_handler_disconnect( G_OBJECT( window ), gpointer_to_int( g_object_get_data( G_OBJECT( window ), "override_handler" ) ) ); g_signal_handler_disconnect( G_OBJECT( window ), gpointer_to_int( g_object_get_data( G_OBJECT( window ), "special_key_press_handler" ) ) ); #else g_signal_handler_disconnect( G_OBJECT( window ), gpointer_to_int( g_object_get_data( G_OBJECT( window ), "key_press_handler" ) ) ); g_signal_handler_disconnect( G_OBJECT( window ), gpointer_to_int( g_object_get_data( G_OBJECT( window ), "key_release_handler" ) ) ); #endif gtk_window_remove_accel_group( window, global_accel ); std::size_t count = g_accel_windows.erase( window ); ASSERT_MESSAGE( count == 1, "failed to remove accel group\n" ); }
/** * create_gens_window_menubar(): Create the menu bar. */ void gens_window_create_menubar(void) { if (gens_menu_bar != NULL) { // Menu bar already exists. Delete it. gtk_widget_destroy(gens_menu_bar); gens_menu_clear(); } if (!vdraw_get_fullscreen() && Settings.showMenuBar) { // Create a menu bar. gens_menu_bar = gtk_menu_bar_new(); gtk_widget_show(gens_menu_bar); gtk_box_pack_start(GTK_BOX(gens_vbox_main), gens_menu_bar, FALSE, FALSE, 0); } else { // Create a popup menu. gens_menu_bar = gtk_menu_new(); } // Accelerator Group. static GtkAccelGroup *gens_menu_accel_group = NULL; if (gens_menu_accel_group != NULL) { // Delete the accelerator group. gtk_window_remove_accel_group(GTK_WINDOW(gens_window), gens_menu_accel_group); g_object_unref(gens_menu_accel_group); } // Create an accelerator group. gens_menu_accel_group = gtk_accel_group_new(); // Parse the menus. gens_menu_parse(&gmiMain[0], gens_menu_bar, gens_menu_accel_group); // Add the accel group. gtk_window_add_accel_group(GTK_WINDOW(gens_window), gens_menu_accel_group); // Synchronize the menus. Sync_Gens_Window(); #ifdef GDK_WINDOWING_QUARTZ // Set the menu bar as the MacOS X menu bar. if (!vdraw_get_fullscreen() && Settings.showMenuBar) ige_mac_menu_set_menu_bar(GTK_MENU_SHELL(gens_menu_bar)); #endif }
static void bjb_editor_toolbar_finalize (GObject *obj) { BjbEditorToolbar *self = BJB_EDITOR_TOOLBAR (obj); BjbEditorToolbarPrivate *priv = self->priv; GtkWidget *window; window = bjb_note_view_get_base_window (priv->view); gtk_window_remove_accel_group (GTK_WINDOW (window), priv->accel); g_object_unref (priv->accel); clutter_actor_destroy (priv->actor); G_OBJECT_CLASS (bjb_editor_toolbar_parent_class)->finalize (obj); }
static void gb_gnome_app_setup_initial_app (GtkWidget *widget) { GtkWidget *placeholder, *toolbar; /* We create a standard menubar and toolbar which the user can edit or simply delete anything they don't want. */ glade_gnome_setup_initial_menus (widget); /* We need to get rid of the accelerators, since they aren't used, and they would override our default accelerators. */ gtk_window_remove_accel_group (GTK_WINDOW (widget), GNOME_APP (widget)->accel_group); /* FIXME: GnomeLibs bug workaround. It sets the initial border width to -2, which causes us lots of problems. */ #if 0 gtk_container_set_border_width (GTK_CONTAINER (GNOME_APP (widget)->menubar), 0); #endif gb_widget_create_from (GNOME_APP (widget)->menubar, "GtkMenubar"); gb_widget_create_from (GNOME_APP (widget)->menubar->parent, "BonoboDockItem"); /* Toolbar */ toolbar = gtk_toolbar_new (); gnome_app_set_toolbar (GNOME_APP (widget), GTK_TOOLBAR (toolbar)); gb_widget_create_from (toolbar, "GtkToolbar"); gb_widget_create_from (toolbar->parent, "BonoboDockItem"); gb_gnome_app_add_toolbar_button (GTK_TOOLBAR (toolbar), GTK_STOCK_NEW, _("New File")); gb_gnome_app_add_toolbar_button (GTK_TOOLBAR (toolbar), GTK_STOCK_OPEN, _("Open File")); gb_gnome_app_add_toolbar_button (GTK_TOOLBAR (toolbar), GTK_STOCK_SAVE, _("Save File")); /* Statusbar */ gnome_app_set_statusbar (GNOME_APP (widget), gb_widget_new ("GnomeAppBar", widget)); gb_widget_set_child_name (GNOME_APP (widget)->statusbar, GladeChildGnomeAppBar); /* We need to size the placeholders or the dialog is very small. */ placeholder = editor_new_placeholder (); gtk_widget_set_usize (placeholder, 300, 200); gnome_app_set_contents (GNOME_APP (widget), placeholder); }
void libbalsa_window_set_accels(GtkApplicationWindow * window, GMenuModel * menu_model) { GSList *accel_groups; GtkAccelGroup *accel_group; /* Remove current accelerators: */ accel_groups = gtk_accel_groups_from_object(G_OBJECT(window)); if (accel_groups) /* Last is first... */ gtk_window_remove_accel_group(GTK_WINDOW(window), accel_groups->data); accel_group = get_accel_group(menu_model, G_ACTION_MAP(window)); gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); g_object_unref(accel_group); }
gboolean check_emacs_key_theme(GtkWindow *window, GtkItemFactory *ifactory) { GtkAccelGroup *accel_group; GSList *groups; gchar *key_theme = NULL; gboolean emacs_flag = FALSE; GtkSettings *settings = gtk_settings_get_default(); g_object_get(settings, "gtk-key-theme-name", &key_theme, NULL); if (key_theme) { if (!g_ascii_strcasecmp(key_theme, "Emacs")) emacs_flag = TRUE; g_free(key_theme); } if (!emacs_flag) return FALSE; groups = gtk_accel_groups_from_object(G_OBJECT(window)); accel_group = groups->data; if (accel_group) { gtk_window_remove_accel_group(GTK_WINDOW(window), accel_group); g_object_unref(accel_group); } accel_group = gtk_accel_group_new(); gtk_rc_parse_string ( "binding \"gtk-emacs-text-entry\"" "{\n" "bind \"<ctrl>w\" { \"cut-clipboard\" () }" "}\n" ); /* gtk_widget_remove_accelerator( gtk_item_factory_get_widget(ifactory, "/File/New"), accel_group, GDK_N, GDK_CONTROL_MASK); gtk_widget_remove_accelerator( gtk_item_factory_get_widget(ifactory, "/File/Open..."), accel_group, GDK_O, GDK_CONTROL_MASK); gtk_widget_remove_accelerator( gtk_item_factory_get_widget(ifactory, "/File/Save"), accel_group, GDK_S, GDK_CONTROL_MASK); gtk_widget_remove_accelerator( gtk_item_factory_get_widget(ifactory, "/File/Save As..."), accel_group, GDK_S, GDK_SHIFT_MASK | GDK_CONTROL_MASK); #ifdef ENABLE_PRINT gtk_widget_remove_accelerator( gtk_item_factory_get_widget(ifactory, "/File/Print..."), accel_group, GDK_P, GDK_CONTROL_MASK); #endif gtk_widget_remove_accelerator( gtk_item_factory_get_widget(ifactory, "/Edit/Undo"), accel_group, GDK_Z, GDK_CONTROL_MASK); */ gtk_widget_add_accelerator( gtk_item_factory_get_widget(ifactory, "/Edit/Undo"), "activate", accel_group, GDK_underscore, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); /* gtk_widget_remove_accelerator( gtk_item_factory_get_widget(ifactory, "/Edit/Select All"), accel_group, GDK_A, GDK_CONTROL_MASK); gtk_widget_remove_accelerator( gtk_item_factory_get_widget(ifactory, "/Search/Find..."), accel_group, GDK_F, GDK_CONTROL_MASK); */ gtk_widget_add_accelerator( gtk_item_factory_get_widget(ifactory, "/Search/Find..."), "activate", accel_group, GDK_S, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); /* gtk_widget_add_accelerator( gtk_item_factory_get_widget(ifactory, "/Search/Find Next"), "activate", accel_group, GDK_S, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); */ gtk_widget_add_accelerator( gtk_item_factory_get_widget(ifactory, "/Search/Find Previous"), "activate", accel_group, GDK_R, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); /* gtk_widget_remove_accelerator( gtk_item_factory_get_widget(ifactory, "/Search/Replace..."), accel_group, GDK_H, GDK_CONTROL_MASK); */ gtk_widget_add_accelerator( gtk_item_factory_get_widget(ifactory, "/Search/Replace..."), "activate", accel_group, GDK_percent, GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); /* gtk_widget_remove_accelerator( gtk_item_factory_get_widget(ifactory, "/Search/Jump To..."), accel_group, GDK_J, GDK_CONTROL_MASK); */ gtk_widget_add_accelerator( gtk_item_factory_get_widget(ifactory, "/Search/Jump To..."), "activate", accel_group, GDK_G, GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); gtk_accel_group_connect( accel_group, GDK_X, GDK_CONTROL_MASK, 0, g_cclosure_new_swap(G_CALLBACK(emacs_key_prefix), NULL, NULL)); gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); return TRUE; }
/** * Toggle the visibility of conversation window menu items * * The method of hiding the menu items is to reparent them back into their * original (still hidden) parent window. This avoids conflicting with other * "hiding" methods used by plugins, such as widget sensitivity or visibility. * * When migrating to the Buddy List, left-justified items are inserted after * the last left-justified item. Right-justified items are inserted before the * first right-justified item. This appears to append conversation menu items * while keeping the Buddy List's notification icon on the far right. * * When migrating back to the conversation window, left-justified items are * prepended to all items. Right-justified items are inserted before the first * right-justified item. This gives the appearance of appending any newly * added menu items when they are all migrated to the Buddy List again. * * @param[in] gtkblist The Buddy List whose menu needs adjusting * @param[in] visible Whether the menu items are being shown or hidden **/ void pwm_set_conv_menus_visible(PidginBuddyList *gtkblist, gboolean visible) { PidginWindow * gtkconvwin; /*< Conversation window merged into gtkblist */ GtkMenu *submenu; /*< A submenu of a conversation menu item */ GtkContainer *from_menu; /*< Menu bar of the window losing the items */ GtkContainer *to_menu; /*< Menu bar of the window gaining the items */ GtkWidget *blist_menu; /*< The Buddy List menu bar */ GtkWidget *convs_menu; /*< The conversation window menu bar */ GtkWidget *item; /*< A menu item widget being transferred */ GList *children; /*< List of menu items in a given window */ GList *child; /*< A menu item in the list (iteration) */ GList *migrated_items; /*< List of items added to the Buddy List */ gint index_left; /*< Position to insert left-justified items */ gint index_right; /*< Position to insert right-justified items */ gtkconvwin = pwm_blist_get_convs(gtkblist); /* Sanity check: Only act on a merged Buddy List window. */ if (gtkconvwin == NULL) return; blist_menu = gtk_widget_get_parent(gtkblist->menutray); convs_menu = gtkconvwin->menu.menubar; from_menu = GTK_CONTAINER(visible ? convs_menu : blist_menu); to_menu = GTK_CONTAINER(visible ? blist_menu : convs_menu); migrated_items = pwm_fetch(gtkblist, "conv_menus"); /* XXX: Drop the "Send To" menu to avoid segfaults. */ if (visible && gtkconvwin->menu.send_to != NULL) { gtk_widget_destroy(gtkconvwin->menu.send_to); gtkconvwin->menu.send_to = NULL; } /* Locate the position before the first right-aligned menu item. */ index_right = 0; children = gtk_container_get_children(to_menu); for (child = children; child != NULL; child = child->next) if (gtk_menu_item_get_right_justified( GTK_MENU_ITEM(child->data))) break; else index_right++; g_list_free(children); index_left = visible ? index_right : 0; /* Loop over each conversation menu item to move it to its destination. */ children = visible ? gtk_container_get_children(from_menu) : migrated_items; for (child = children; child != NULL; child = child->next) { item = GTK_WIDGET(child->data); /* Reparent the item into the window based on existing justified * items. */ g_object_ref_sink(G_OBJECT(item)); gtk_container_remove(from_menu, item); if (gtk_menu_item_get_right_justified(GTK_MENU_ITEM(item))) gtk_menu_shell_insert(GTK_MENU_SHELL(to_menu), item, index_right); else gtk_menu_shell_insert(GTK_MENU_SHELL(to_menu), item, index_left++); g_object_unref(G_OBJECT(item)); index_right++; /* Register/Unregister its accelerator group with the Buddy List * window. */ submenu = GTK_MENU(gtk_menu_item_get_submenu(GTK_MENU_ITEM(item))); if (visible) gtk_window_add_accel_group( GTK_WINDOW(gtkblist->window), gtk_menu_get_accel_group(submenu)); else gtk_window_remove_accel_group( GTK_WINDOW(gtkblist->window), gtk_menu_get_accel_group(submenu)); /* Add this menu item to the list for later restoration, if * necessary. */ if (visible) migrated_items = g_list_append(migrated_items, child->data); } g_list_free(children); /* Update the stored pointer to the list of migrated items. */ if (visible) pwm_store(gtkblist, "conv_menus", migrated_items); else pwm_clear(gtkblist, "conv_menus"); }
void gMainWindow::reparent(gContainer *newpr, int x, int y) { GtkWidget *new_border; int w, h; gColor fg, bg; if (_xembed) return; bg = background(); fg = foreground(); if (isTopLevel() && newpr) { gtk_window_remove_accel_group(GTK_WINDOW(topLevel()->border), accel); new_border = gtk_event_box_new(); gtk_widget_reparent(widget, new_border); embedMenuBar(new_border); _no_delete = true; gtk_widget_destroy(border); _no_delete = false; border = new_border; registerControl(); setCanFocus(false); setParent(newpr); connectParent(); borderSignals(); initWindow(); setBackground(bg); setForeground(fg); setFont(font()); checkMenuBar(); bufX = bufY = 0; move(x, y); gtk_widget_set_size_request(border, width(), height()); // Hidden children are incorrectly shown. Fix that! hideHiddenChildren(); } else if ((!isTopLevel() && !newpr) || (isTopLevel() && isPopup())) //|| (isTopLevel() && (isPopup() ^ (type == GTK_WINDOW_POPUP)))) { gtk_window_remove_accel_group(GTK_WINDOW(topLevel()->border), accel); // TODO: test that new_border = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_reparent(widget, new_border); embedMenuBar(new_border); _no_delete = true; gtk_widget_destroy(border); _no_delete = false; border = new_border; registerControl(); setCanFocus(true); if (parent()) { parent()->remove(this); parent()->arrange(); setParent(NULL); } initWindow(); borderSignals(); setBackground(bg); setForeground(fg); setFont(font()); move(x, y); w = width(); h = height(); bufW = bufH = -1; gtk_widget_set_size_request(border, 1, 1); resize(w, h); hideHiddenChildren(); _popup = false; //type == GTK_WINDOW_POPUP; } else { gContainer::reparent(newpr, x, y); } }