diff --git a/mcs-plugin/xfwm4_plugin.c b/mcs-plugin/xfwm4_plugin.c index aba95be4f4233dc85eabb7617474d0bc69bdcc2c..fbdf336b36f3eab2c66abe2682e323b5050f7d8a 100644 --- a/mcs-plugin/xfwm4_plugin.c +++ b/mcs-plugin/xfwm4_plugin.c @@ -31,6 +31,7 @@ #include <string.h> #include <stdlib.h> #include <stdio.h> +#include <fcntl.h> #include <gtk/gtk.h> #include <gdk/gdk.h> @@ -48,13 +49,6 @@ #define INDICATOR_SIZE 11 -typedef enum -{ - DECORATION_THEMES = 0, - KEYBINDING_THEMES = 1 -} -ThemeType; - typedef struct _TitleRadioButton TitleRadioButton; struct _TitleRadioButton { @@ -754,13 +748,23 @@ update_theme_dir (const gchar * theme_dir, GList * theme_list) gboolean set_layout = FALSE; gboolean set_align = FALSE; gboolean set_font = FALSE; + gboolean user_writable = FALSE; gchar *tmp; tmp = g_build_filename (theme_dir, KEY_SUFFIX, KEYTHEMERC, NULL); if (g_file_test (tmp, G_FILE_TEST_IS_REGULAR) && parserc (tmp, &set_layout, &set_align, &set_font)) { + int fd; + has_keybinding = TRUE; + + fd = open (tmp, O_WRONLY); + if (fd != -1) + { + user_writable = TRUE; + close (fd); + } } g_free (tmp); @@ -789,6 +793,7 @@ update_theme_dir (const gchar * theme_dir, GList * theme_list) info->set_layout = set_layout; info->set_align = set_align; info->set_font = set_font; + info->user_writable = user_writable; } } else @@ -803,7 +808,7 @@ update_theme_dir (const gchar * theme_dir, GList * theme_list) info->set_layout = set_layout; info->set_align = set_align; info->set_font = set_font; - + info->user_writable = user_writable; list = g_list_prepend (list, info); } } @@ -954,16 +959,27 @@ keybinding_selection_changed (GtkTreeSelection * selection, gpointer data) { if (current_key_theme && strcmp (current_key_theme, new_key_theme)) { + ThemeInfo *ti; + g_free (current_key_theme); current_key_theme = new_key_theme; mcs_manager_set_string (mcs_plugin->manager, "Xfwm/KeyThemeName", CHANNEL, current_key_theme); mcs_manager_notify (mcs_plugin->manager, CHANNEL); write_options (mcs_plugin); - } + + ti = find_theme_info_by_name (new_key_theme, keybinding_theme_list); + + if (ti) + { + gtk_widget_set_sensitive (itf->treeview3, ti->user_writable); + gtk_widget_set_sensitive (itf->treeview4, ti->user_writable); + loadtheme_in_treeview (ti, itf); + } + } } } -static GList * +GList * read_themes (GList * theme_list, GtkWidget * treeview, GtkWidget * swindow, ThemeType type, gchar * current_value) { GList *list; @@ -1340,28 +1356,6 @@ cb_dialog_response (GtkWidget * dialog, gint response_id) } } -static void -cb_shortcuttheme_changed (GtkTreeSelection * selection, Itf * itf) -{ - ThemeInfo *ti; - GtkTreeModel *model; - GtkTreeIter iter; - gchar *theme_name; - - if (gtk_tree_selection_get_selected (selection, &model, &iter)) - { - gtk_tree_model_get (model, &iter, THEME_NAME_COLUMN, &theme_name, -1); - - ti = find_theme_info_by_name (theme_name, keybinding_theme_list); - - if (ti) - { - loadtheme_in_treeview (ti, itf); - } - g_free (theme_name); - } -} - Itf * create_dialog (McsPlugin * mcs_plugin) { @@ -1500,7 +1494,6 @@ create_dialog (McsPlugin * mcs_plugin) dialog->treeview3 = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model)); gtk_widget_show (dialog->treeview3); gtk_container_add (GTK_CONTAINER (dialog->scrolledwindow3), dialog->treeview3); - /* gtk_widget_set_size_request (dialog->treeview3, 250, -1); */ /* command column */ renderer = gtk_cell_renderer_text_new (); @@ -1541,6 +1534,13 @@ create_dialog (McsPlugin * mcs_plugin) gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (dialog->treeview4), -1, _("Shortcut"), renderer, "text", COLUMN_SHORTCUT, NULL); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (dialog->treeview4), TRUE); + /* popup menu */ + dialog->popup_menu = gtk_menu_new (); + dialog->popup_add_menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_ADD,NULL); + gtk_container_add (GTK_CONTAINER (dialog->popup_menu), dialog->popup_add_menuitem); + dialog->popup_del_menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_REMOVE, NULL); + gtk_container_add (GTK_CONTAINER (dialog->popup_menu), dialog->popup_del_menuitem); + gtk_widget_show_all (dialog->popup_menu); label = gtk_label_new (_("Keyboard")); gtk_widget_show (label); @@ -1825,10 +1825,12 @@ setup_dialog (Itf * itf) selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (itf->treeview2)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE); + g_signal_connect (G_OBJECT (selection), "changed", (GCallback) keybinding_selection_changed, itf); + g_signal_connect (G_OBJECT (itf->treeview2), "button-press-event", G_CALLBACK (cb_popup_menu), itf); + g_signal_connect (G_OBJECT (itf->popup_add_menuitem), "activate", G_CALLBACK (cb_popup_add_menu), itf); - g_signal_connect (G_OBJECT (gtk_tree_view_get_selection (GTK_TREE_VIEW (itf->treeview2))), "changed", G_CALLBACK (cb_shortcuttheme_changed), itf); g_signal_connect (G_OBJECT (itf->treeview3), "row-activated", G_CALLBACK (cb_activate_treeview3), itf); g_signal_connect (G_OBJECT (itf->treeview4), "row-activated", G_CALLBACK (cb_activate_treeview4), itf); @@ -1842,6 +1844,8 @@ setup_dialog (Itf * itf) if (ti) { + gtk_widget_set_sensitive (itf->treeview3, ti->user_writable); + gtk_widget_set_sensitive (itf->treeview4, ti->user_writable); loadtheme_in_treeview (ti, itf); } else diff --git a/mcs-plugin/xfwm4_plugin.h b/mcs-plugin/xfwm4_plugin.h index 2f567e20612e054b62f22e99bc313154b3b73272..4706aaaa684c2699882939a5bbbf229d0a48a271 100644 --- a/mcs-plugin/xfwm4_plugin.h +++ b/mcs-plugin/xfwm4_plugin.h @@ -111,6 +111,10 @@ struct _Itf GtkWidget *wrap_windows_check; GtkWidget *wrap_resistance_scale; GtkWidget *xfwm4_dialog; + GtkWidget *popup_menu; + GtkWidget* popup_add_menuitem; + GtkWidget* popup_del_menuitem; + }; enum @@ -120,9 +124,16 @@ enum NUM_COLUMNS }; +typedef enum +{ + DECORATION_THEMES = 0, + KEYBINDING_THEMES = 1 +} +ThemeType; + extern gchar *current_key_theme; extern GList *keybinding_theme_list; extern ThemeInfo *find_theme_info_by_name (const gchar *, GList *); - +extern GList *read_themes (GList *, GtkWidget *, GtkWidget *, ThemeType, gchar *); #endif diff --git a/mcs-plugin/xfwm4_shortcuteditor.c b/mcs-plugin/xfwm4_shortcuteditor.c index 23e5961f406fce06dc9470355a0298bda0f64c6d..1dabd66e0f27d1c1c4e569ea14948e2c1beb3faf 100644 --- a/mcs-plugin/xfwm4_shortcuteditor.c +++ b/mcs-plugin/xfwm4_shortcuteditor.c @@ -32,6 +32,123 @@ #include "xfwm4_plugin.h" #include "xfwm4_shortcuteditor.h" +/**************/ +/* Popup menu */ +/**************/ +void +cb_popup_add_menu (GtkWidget *widget, gpointer data) +{ + Itf *itf; + GtkWidget *dialog; + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *entry; + GtkWidget *header_image; + GtkWidget *header; + gint response = GTK_RESPONSE_CANCEL; + + itf = (Itf *) data; + + dialog = gtk_dialog_new_with_buttons (_("Enter a name"), GTK_WINDOW (itf->xfwm4_dialog), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); + + header_image = gtk_image_new_from_stock (GTK_STOCK_ADD, GTK_ICON_SIZE_LARGE_TOOLBAR); + header = xfce_create_header_with_image (header_image, _("Add keybinding theme")); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), header, FALSE, FALSE, 0); + + hbox = gtk_hbox_new (FALSE, BORDER); + label = gtk_label_new (_("Enter a name for the theme:")); + entry = gtk_entry_new (); + gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); + + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 10); + gtk_widget_show_all (dialog); + + response = gtk_dialog_run (GTK_DIALOG (dialog)); + + if (response == GTK_RESPONSE_OK) + { + gchar *default_theme_file = NULL; + gchar *new_theme_path = NULL; + gchar *new_theme_file = NULL; + gchar buf[80]; + FILE *new_theme; + FILE *default_theme; + + /* create theme (copy default) */ + new_theme_path = g_strdup_printf ("%s/xfwm4/%s", gtk_entry_get_text (GTK_ENTRY (entry)), KEYTHEMERC); + new_theme_file = xfce_resource_save_location (XFCE_RESOURCE_THEMES, new_theme_path, TRUE); + default_theme_file = g_build_filename (DATADIR, G_DIR_SEPARATOR_S, "themes", G_DIR_SEPARATOR_S, "Default", + G_DIR_SEPARATOR_S, KEY_SUFFIX, G_DIR_SEPARATOR_S KEYTHEMERC, NULL); + + //TODO check if everything is ok + new_theme = fopen (new_theme_file, "w+"); + default_theme = fopen (default_theme_file, "r"); + + while (fgets (buf, sizeof (buf), default_theme)) + { + fputs (buf, new_theme); + } + + fclose (new_theme); + fclose (default_theme); + + //TODO refresh list + //FIXME g_list_free (keybinding_theme_list); + + keybinding_theme_list = read_themes (keybinding_theme_list, itf->treeview2, itf->scrolledwindow2, + KEYBINDING_THEMES, current_key_theme); + g_free (new_theme_path); + g_free (new_theme_file); + g_free (default_theme_file); + + } + + gtk_widget_destroy (dialog); +} + +gboolean +cb_popup_menu (GtkTreeView *treeview, GdkEventButton *event, gpointer data) +{ + Itf *itf; + + itf = (Itf *) data; + + /* Right click draws the context menu */ + if ((event->button == 3) && (event->type == GDK_BUTTON_PRESS)) + { + GtkTreePath *path; + + if (gtk_tree_view_get_path_at_pos (treeview, event->x, event->y, &path, NULL, NULL, NULL)) + { + GtkTreeSelection *selection; + + selection = gtk_tree_view_get_selection (treeview); + gtk_tree_selection_unselect_all (selection); + gtk_tree_selection_select_path (selection, path); + + gtk_widget_set_sensitive (itf->popup_del_menuitem, TRUE); + } + else + { + gtk_widget_set_sensitive (itf->popup_del_menuitem, FALSE); + } + + gtk_menu_popup (GTK_MENU (itf->popup_menu), NULL, NULL, NULL, NULL, + event->button, gtk_get_current_event_time()); + return TRUE; + } + + return FALSE; +} + +/*******************************/ +/* Load theme in the treeview */ +/*******************************/ void loadtheme_in_treeview (ThemeInfo *ti, gpointer data) { @@ -42,16 +159,13 @@ loadtheme_in_treeview (ThemeInfo *ti, gpointer data) GtkTreeModel *model3, *model4; GtkTreeIter iter; - FILE *fp; - gchar *lvalue, *rvalue; - gchar buf[80]; gboolean key_found = FALSE; gchar *user_theme_file = NULL; - gchar *keythemerc_name = NULL; gchar *default_theme_file = NULL; gchar **shortcuts_list = NULL; + gchar **shortcut = NULL; model3 = gtk_tree_view_get_model (GTK_TREE_VIEW (itf->treeview3)); model4 = gtk_tree_view_get_model (GTK_TREE_VIEW (itf->treeview4)); @@ -60,354 +174,365 @@ loadtheme_in_treeview (ThemeInfo *ti, gpointer data) user_theme_file = g_build_filename (ti->path, KEY_SUFFIX, KEYTHEMERC, NULL); default_theme_file = g_build_filename (DATADIR, G_DIR_SEPARATOR_S, "themes", G_DIR_SEPARATOR_S, "Default", - G_DIR_SEPARATOR_S, "xfwm4", G_DIR_SEPARATOR_S KEYTHEMERC, NULL); + G_DIR_SEPARATOR_S, KEY_SUFFIX, G_DIR_SEPARATOR_S KEYTHEMERC, NULL); + + if (g_ascii_strcasecmp (ti->name, "Default") == 0) + { + g_free (user_theme_file); + user_theme_file = g_strdup (default_theme_file); + } default_rc = xfce_rc_simple_open (default_theme_file, TRUE); user_rc = xfce_rc_simple_open (user_theme_file, TRUE); - fp = fopen (user_theme_file, "r"); + shortcuts_list = xfce_rc_get_entries (default_rc, NULL); g_free (user_theme_file); g_free (default_theme_file); - shortcuts_list = xfce_rc_get_entries (default_rc, ""); - - if (!fp) - return; + shortcut = shortcuts_list; - while (fgets (buf, sizeof (buf), fp)) + while (*shortcut) { - lvalue = strtok (buf, "="); - rvalue = strtok (NULL, "\n"); - - if (g_ascii_strcasecmp (lvalue, "close_window_key") == 0) + const gchar *entry_value; + const gchar *fallback_value; + + fallback_value = xfce_rc_read_entry (default_rc, *shortcut, "none"); + entry_value = xfce_rc_read_entry (user_rc, *shortcut, fallback_value); + + if (g_ascii_strcasecmp (*shortcut, "close_window_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Close window"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Close window"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "maximize_window_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "maximize_window_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Maximize window"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Maximize window"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "maximize_vert_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "maximize_vert_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Maximize window vertically"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Maximize window vertically"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "maximize_horiz_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "maximize_horiz_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Maximize window horizontally"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Maximize window horizontally"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "hide_window_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "hide_window_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Hide window"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Hide window"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "shade_window_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shade_window_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Shade window"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Shade window"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "stick_window_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "stick_window_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Stick window"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Stick window"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "cycle_windows_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "cycle_windows_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Cycle windows"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Cycle windows"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_up_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_up_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window up"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window up"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_down_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_down_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window down"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window down"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_left_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_left_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window left"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window left"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_right_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_right_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window right"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window right"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "resize_window_up_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "resize_window_up_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Resize window up"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Resize window up"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "resize_window_down_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "resize_window_down_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Resize window down"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Resize window down"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "resize_window_left_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "resize_window_left_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Resize window left"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Resize window left"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "resize_window_right_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "resize_window_right_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Resize window right"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Resize window right"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "raise_window_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "raise_window_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Raise window"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Raise window"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "lower_window_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "lower_window_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Lower window"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Lower window"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "fullscreen_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "fullscreen_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Toggle fullscreen"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Toggle fullscreen"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "next_workspace_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "next_workspace_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Next workspace"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Next workspace"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "prev_workspace_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "prev_workspace_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Previous workspace"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Previous workspace"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "add_workspace_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "add_workspace_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Add workspace"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Add workspace"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "del_workspace_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "del_workspace_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Delete workspace"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Delete workspace"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "workspace_1_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "workspace_1_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 1"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 1"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "workspace_2_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "workspace_2_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 2"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 2"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "workspace_3_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "workspace_3_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 3"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 3"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "workspace_4_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "workspace_4_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 4"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 4"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "workspace_5_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "workspace_5_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 5"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 5"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "workspace_6_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "workspace_6_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 6"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 6"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "workspace_7_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "workspace_7_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 7"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 7"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "workspace_8_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "workspace_8_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 8"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 8"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "workspace_9_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "workspace_9_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 9"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Workspace 9"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_next_workspace_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_next_workspace_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to next workspace"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to next workspace"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_prev_workspace_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_prev_workspace_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to previous workspace"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to previous workspace"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_workspace_1_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_workspace_1_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 1"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 1"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_workspace_2_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_workspace_2_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 2"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 2"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_workspace_3_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_workspace_3_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 3"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 3"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_workspace_4_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_workspace_4_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 4"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 4"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_workspace_5_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_workspace_5_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 5"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 5"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_workspace_6_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_workspace_6_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 6"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 6"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_workspace_7_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_workspace_7_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 7"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 7"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_workspace_8_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_workspace_8_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 8"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 8"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "move_window_workspace_9_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "move_window_workspace_9_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model3), &iter); - gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 9"), COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, _("Move window to workspace 9"), COLUMN_SHORTCUT, entry_value, -1); } - else if (g_ascii_strcasecmp (lvalue, "shortcut_1_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_1_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model4), &iter); - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, entry_value, -1); key_found = TRUE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_1_exec") == 0 && key_found) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_1_exec") == 0 && key_found) { - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, entry_value, -1); key_found = FALSE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_2_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_2_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model4), &iter); - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, entry_value, -1); key_found = TRUE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_2_exec") == 0 && key_found) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_2_exec") == 0 && key_found) { - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, entry_value, -1); key_found = FALSE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_3_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_3_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model4), &iter); - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, entry_value, -1); key_found = TRUE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_3_exec") == 0 && key_found) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_3_exec") == 0 && key_found) { - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, entry_value, -1); key_found = FALSE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_4_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_4_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model4), &iter); - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, entry_value, -1); key_found = TRUE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_4_exec") == 0 && key_found) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_4_exec") == 0 && key_found) { - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, entry_value, -1); key_found = FALSE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_5_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_5_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model4), &iter); - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, entry_value, -1); key_found = TRUE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_5_exec") == 0 && key_found) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_5_exec") == 0 && key_found) { - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, entry_value, -1); key_found = FALSE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_6_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_6_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model4), &iter); - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, entry_value, -1); key_found = TRUE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_6_exec") == 0 && key_found) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_6_exec") == 0 && key_found) { - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, entry_value, -1); key_found = FALSE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_7_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_7_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model4), &iter); - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, entry_value, -1); key_found = TRUE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_7_exec") == 0 && key_found) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_7_exec") == 0 && key_found) { - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, entry_value, -1); key_found = FALSE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_8_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_8_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model4), &iter); - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, entry_value, -1); key_found = TRUE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_8_exec") == 0 && key_found) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_8_exec") == 0 && key_found) { - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, entry_value, -1); key_found = FALSE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_9_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_9_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model4), &iter); - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, entry_value, -1); key_found = TRUE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_9_exec") == 0 && key_found) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_9_exec") == 0 && key_found) { - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, entry_value, -1); key_found = FALSE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_10_key") == 0) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_10_key") == 0) { gtk_list_store_append (GTK_LIST_STORE (model4), &iter); - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, "none", COLUMN_SHORTCUT, entry_value, -1); key_found = TRUE; } - else if (g_ascii_strcasecmp (lvalue, "shortcut_10_exec") == 0 && key_found) + else if (g_ascii_strcasecmp (*shortcut, "shortcut_10_exec") == 0 && key_found) { - gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, rvalue, -1); + gtk_list_store_set (GTK_LIST_STORE (model4), &iter, COLUMN_COMMAND, entry_value, -1); key_found = FALSE; } - } + else + { + gtk_list_store_append (GTK_LIST_STORE (model3), &iter); + gtk_list_store_set (GTK_LIST_STORE (model3), &iter, COLUMN_COMMAND, *shortcut, COLUMN_SHORTCUT, entry_value, -1); + } - fclose (fp); + *shortcut++; + } g_strfreev (shortcuts_list); diff --git a/mcs-plugin/xfwm4_shortcuteditor.h b/mcs-plugin/xfwm4_shortcuteditor.h index 6a9f4be4ff05fc8e99f083c7c853b353d343fa12..da3c1e52034f65ab782a48b6b68914b0b04183c5 100644 --- a/mcs-plugin/xfwm4_shortcuteditor.h +++ b/mcs-plugin/xfwm4_shortcuteditor.h @@ -20,6 +20,8 @@ #ifndef __XFWM4_SHORTCUTEDITOR_H #define __XFWM4_SHORTCUTEDITOR_H +extern void cb_popup_add_menu (GtkWidget *, gpointer); +extern gboolean cb_popup_menu (GtkTreeView *, GdkEventButton *, gpointer); extern void loadtheme_in_treeview (ThemeInfo *, gpointer); extern void savetreeview_in_theme (gchar *, gpointer);