File fcitx-configtool-gnome-3.10-fixes.patch of Package fcitx-configtool
Index: fcitx-configtool-0.4.7/gtk3/config_widget.c
===================================================================
--- fcitx-configtool-0.4.7.orig/gtk3/config_widget.c
+++ fcitx-configtool-0.4.7/gtk3/config_widget.c
@@ -483,7 +483,15 @@ fcitx_config_widget_create_full_ui(Fcitx
g_object_set(G_OBJECT(scrollwnd), "shadow-type", GTK_SHADOW_NONE, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwnd), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 7) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 7 && GTK_MICRO_VERSION < 8))
+ /* http://developer.gnome.org/gtk3/unstable/GtkScrolledWindow.html#gtk-scrolled-window-add-with-viewport */
+ /* gtk_scrolled_window_add_with_viewport has been deprecated since version 3.8 and should not be used in newly-written code. */
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrollwnd), grid);
+#else
+ /* gtk_container_add() will now automatically add a GtkViewport if the child doesn't implement GtkScrollable. */
+ gtk_container_add(GTK_CONTAINER(scrollwnd), grid);
+#endif
gtk_notebook_append_page(GTK_NOTEBOOK(configNotebook),
scrollwnd,
plabel);
@@ -926,9 +934,9 @@ GtkWidget* fcitx_config_dialog_new(Fcitx
GtkWidget* dialog = gtk_dialog_new_with_buttons(addon->generalname,
parent,
GTK_DIALOG_MODAL,
- GTK_STOCK_CANCEL,
+ _("_Cancel"),
GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK,
+ _("_OK"),
GTK_RESPONSE_OK,
NULL
);
Index: fcitx-configtool-0.4.7/gtk3/im_config_dialog.c
===================================================================
--- fcitx-configtool-0.4.7.orig/gtk3/im_config_dialog.c
+++ fcitx-configtool-0.4.7/gtk3/im_config_dialog.c
@@ -70,9 +70,9 @@ fcitx_im_config_dialog_init(FcitxImConfi
gtk_window_set_modal(GTK_WINDOW(self), TRUE);
gtk_dialog_add_buttons(GTK_DIALOG(self),
- GTK_STOCK_CANCEL,
+ _("_Cancel"),
GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK,
+ _("_OK"),
GTK_RESPONSE_OK,
NULL
);
Index: fcitx-configtool-0.4.7/gtk3/im_dialog.c
===================================================================
--- fcitx-configtool-0.4.7.orig/gtk3/im_dialog.c
+++ fcitx-configtool-0.4.7/gtk3/im_dialog.c
@@ -124,9 +124,9 @@ fcitx_im_dialog_init(FcitxImDialog* self
gtk_window_set_modal(GTK_WINDOW(self), TRUE);
gtk_dialog_add_buttons(GTK_DIALOG(self),
- GTK_STOCK_CANCEL,
+ _("_Cancel"),
GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK,
+ _("_OK"),
GTK_RESPONSE_OK,
NULL
);
Index: fcitx-configtool-0.4.7/gtk3/im_dialog.ui
===================================================================
--- fcitx-configtool-0.4.7.orig/gtk3/im_dialog.ui
+++ fcitx-configtool-0.4.7/gtk3/im_dialog.ui
@@ -45,6 +45,12 @@
<object class="GtkBox" id="im_dialog">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">5</property>
+ <property name="margin_top">5</property>
+ <property name="margin_bottom">5</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow1">
Index: fcitx-configtool-0.4.7/gtk3/im_widget.c
===================================================================
--- fcitx-configtool-0.4.7.orig/gtk3/im_widget.c
+++ fcitx-configtool-0.4.7/gtk3/im_widget.c
@@ -137,12 +137,12 @@ fcitx_im_widget_init(FcitxImWidget* self
gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP);
gtk_style_context_add_class (context, "inline-toolbar");
- gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->addimbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("list-add-symbolic"), GTK_ICON_SIZE_BUTTON));
- gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->delimbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("list-remove-symbolic"), GTK_ICON_SIZE_BUTTON));
- gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->moveupbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("go-up-symbolic"), GTK_ICON_SIZE_BUTTON));
- gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->movedownbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("go-down-symbolic"), GTK_ICON_SIZE_BUTTON));
- gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->configurebutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("preferences-system-symbolic"), GTK_ICON_SIZE_BUTTON));
- gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->default_layout_button), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("input-keyboard-symbolic"), GTK_ICON_SIZE_BUTTON));
+ gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->addimbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("list-add-symbolic-hack"), GTK_ICON_SIZE_BUTTON));
+ gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->delimbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("list-remove-symbolic-hack"), GTK_ICON_SIZE_BUTTON));
+ gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->moveupbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("go-up-symbolic-hack"), GTK_ICON_SIZE_BUTTON));
+ gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->movedownbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("go-down-symbolic-hack"), GTK_ICON_SIZE_BUTTON));
+ gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->configurebutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("preferences-system-symbolic-hack"), GTK_ICON_SIZE_BUTTON));
+ gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->default_layout_button), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("input-keyboard-symbolic-hack"), GTK_ICON_SIZE_BUTTON));
g_signal_connect(G_OBJECT(self->addimbutton), "clicked", G_CALLBACK(_fcitx_im_widget_addim_button_clicked), self);
g_signal_connect(G_OBJECT(self->delimbutton), "clicked", G_CALLBACK(_fcitx_im_widget_delim_button_clicked), self);
Index: fcitx-configtool-0.4.7/gtk3/main_window.c
===================================================================
--- fcitx-configtool-0.4.7.orig/gtk3/main_window.c
+++ fcitx-configtool-0.4.7/gtk3/main_window.c
@@ -50,7 +50,7 @@ static void _fcitx_main_window_add_im_pa
static void _fcitx_main_window_add_ui_page(FcitxMainWindow* self);
-void _fcitx_main_window_add_page(FcitxMainWindow* self, const char* name, GtkWidget* widget, const char* stock);
+void _fcitx_main_window_add_page(FcitxMainWindow* self, const char* name, GtkWidget* widget);
static void _fcitx_main_window_addon_selection_changed(GtkTreeSelection *selection, gpointer data);
@@ -124,7 +124,7 @@ void fcitx_main_window_finalize(GObject*
G_OBJECT_CLASS (fcitx_main_window_parent_class)->finalize (object);
}
-void _fcitx_main_window_add_page(FcitxMainWindow* self, const char* name, GtkWidget* widget, const char* stock)
+void _fcitx_main_window_add_page(FcitxMainWindow* self, const char* name, GtkWidget* widget)
{
gtk_widget_show_all(widget);
@@ -200,13 +200,13 @@ void _fcitx_main_window_add_config_file_
g_signal_connect(config_widget, "changed", (GCallback) _fcitx_main_window_config_widget_changed, NULL);
- _fcitx_main_window_add_page(self, _("Global Config"), vbox, GTK_STOCK_PREFERENCES);
+ _fcitx_main_window_add_page(self, _("Global Config"), vbox);
}
void _fcitx_main_window_add_im_page(FcitxMainWindow* self)
{
GtkWidget* imwidget = fcitx_im_widget_new();
- _fcitx_main_window_add_page(self, _("Input Method"), imwidget, GTK_STOCK_EDIT);
+ _fcitx_main_window_add_page(self, _("Input Method"), imwidget);
}
gboolean _ui_connect(gpointer user_data)
@@ -218,7 +218,7 @@ gboolean _ui_connect(gpointer user_data)
void _fcitx_main_window_add_ui_page(FcitxMainWindow* self)
{
GtkWidget* uiwidget = fcitx_ui_widget_new();
- _fcitx_main_window_add_page(self, _("Appearance"), uiwidget, GTK_STOCK_ABOUT);
+ _fcitx_main_window_add_page(self, _("Appearance"), uiwidget);
g_idle_add_full(G_PRIORITY_DEFAULT_IDLE, (GSourceFunc)_ui_connect, g_object_ref(uiwidget), (GDestroyNotify) g_object_unref);
}
@@ -286,9 +286,9 @@ void _fcitx_main_window_add_addon_page(F
/* filter entry */
self->filterentry = gtk_entry_new();
- gtk_entry_set_icon_from_stock (GTK_ENTRY (self->filterentry),
+ gtk_entry_set_icon_from_gicon (GTK_ENTRY (self->filterentry),
GTK_ENTRY_ICON_SECONDARY,
- GTK_STOCK_CLEAR);
+ g_themed_icon_new_with_default_fallbacks("edit-clear"));
g_object_set(G_OBJECT(self->filterentry), "margin", 5, NULL);
#if GTK_CHECK_VERSION(3,2,0)
gtk_entry_set_placeholder_text(GTK_ENTRY (self->filterentry), _("Search Addon"));
@@ -356,7 +356,7 @@ void _fcitx_main_window_add_addon_page(F
self->button = gtk_button_new_with_label(_("Configure"));
gtk_widget_set_sensitive(self->button, FALSE);
- gtk_button_set_image(GTK_BUTTON(self->button), gtk_image_new_from_stock(GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_BUTTON));
+ gtk_button_set_image(GTK_BUTTON(self->button), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("preferences-system"), GTK_ICON_SIZE_BUTTON));
gtk_box_pack_start(GTK_BOX(hbuttonbox), self->button, TRUE, TRUE, 0);
g_signal_connect(G_OBJECT(self->button), "clicked", G_CALLBACK(_fcitx_main_window_configure_button_clicked), self);
@@ -371,7 +371,7 @@ void _fcitx_main_window_add_addon_page(F
"row-activated",
G_CALLBACK(_fcitx_main_window_addon_row_activated), self);
- _fcitx_main_window_add_page(self, _("Addon"), vbox, GTK_STOCK_ADD);
+ _fcitx_main_window_add_page(self, _("Addon"), vbox);
}
static void
Index: fcitx-configtool-0.4.7/gtk3/sub_config_widget.c
===================================================================
--- fcitx-configtool-0.4.7.orig/gtk3/sub_config_widget.c
+++ fcitx-configtool-0.4.7/gtk3/sub_config_widget.c
@@ -110,7 +110,7 @@ fcitx_sub_config_widget_new(FcitxSubConf
g_hash_table_foreach(widget->subconfig->filelist, push_into_store_cb, store);
GtkWidget* button = gtk_button_new();
- gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_stock(GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_BUTTON));
+ gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("preferences-system"), GTK_ICON_SIZE_BUTTON));
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(open_subconfig_file), widget);
GtkWidget* hbuttonbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
g_object_set(G_OBJECT(hbuttonbox), "margin", 5, NULL);
@@ -121,21 +121,21 @@ fcitx_sub_config_widget_new(FcitxSubConf
break;
case SC_NativeFile: {
GtkWidget* button = gtk_button_new();
- gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_BUTTON));
+ gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("document-open"), GTK_ICON_SIZE_BUTTON));
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(open_native_file), widget);
gtk_box_pack_start(GTK_BOX(widget), button, FALSE, FALSE, 0);
}
break;
case SC_Program: {
GtkWidget* button = gtk_button_new();
- gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_stock(GTK_STOCK_EXECUTE, GTK_ICON_SIZE_BUTTON));
+ gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("system-run"), GTK_ICON_SIZE_BUTTON));
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(run_program), widget);
gtk_box_pack_start(GTK_BOX(widget), button, FALSE, FALSE, 0);
}
break;
case SC_Plugin: {
GtkWidget* button = gtk_button_new();
- gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_stock(GTK_STOCK_EXECUTE, GTK_ICON_SIZE_BUTTON));
+ gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("system-run"), GTK_ICON_SIZE_BUTTON));
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(run_plugin), widget);
gtk_box_pack_start(GTK_BOX(widget), button, FALSE, FALSE, 0);
}
@@ -165,10 +165,10 @@ void open_subconfig_file(GtkButton *butt
GtkWidget* dialog = gtk_dialog_new_with_buttons(configfile,
GTK_WINDOW(gtk_widget_get_ancestor(GTK_WIDGET(widget), GTK_TYPE_WINDOW)),
GTK_DIALOG_MODAL,
- GTK_STOCK_OK,
- GTK_RESPONSE_OK,
- GTK_STOCK_CANCEL,
+ _("_Cancel"),
GTK_RESPONSE_CANCEL,
+ _("_OK"),
+ GTK_RESPONSE_OK,
NULL
);
FcitxConfigWidget* config_widget = fcitx_config_widget_new(cfdesc, "", configfile, NULL);
Index: fcitx-configtool-0.4.7/gtk3/ui_widget.c
===================================================================
--- fcitx-configtool-0.4.7.orig/gtk3/ui_widget.c
+++ fcitx-configtool-0.4.7/gtk3/ui_widget.c
@@ -32,7 +32,7 @@ G_DEFINE_TYPE(FcitxUIWidget, fcitx_ui_wi
static void fcitx_ui_widget_dispose(GObject* object);
static void _fcitx_ui_widget_load(FcitxUIWidget* self, const gchar* uiname);
-static void _fcitx_ui_widget_apply_button_clicked(GtkButton* button, gpointer user_data);
+static void _fcitx_ui_widget_config_widget_changed(FcitxConfigWidget* widget, gpointer user_data);
static void
fcitx_ui_widget_class_init(FcitxUIWidgetClass *klass)
@@ -120,15 +120,12 @@ void _fcitx_ui_widget_load(FcitxUIWidget
gtk_box_pack_start(GTK_BOX(self), hbuttonbox, FALSE, TRUE, 0);
g_object_set(G_OBJECT(hbuttonbox), "margin", 5, NULL);
- GtkWidget* applybutton = gtk_button_new_from_stock(GTK_STOCK_APPLY);
- gtk_box_pack_start(GTK_BOX(hbuttonbox), applybutton, TRUE, TRUE, 0);
- g_signal_connect(G_OBJECT(applybutton), "clicked", G_CALLBACK(_fcitx_ui_widget_apply_button_clicked), config_widget);
+ g_signal_connect(config_widget, "changed", (GCallback) _fcitx_ui_widget_config_widget_changed, NULL);
gtk_widget_show_all(GTK_WIDGET(self));
}
}
-void _fcitx_ui_widget_apply_button_clicked(GtkButton* button, gpointer user_data)
+void _fcitx_ui_widget_config_widget_changed(FcitxConfigWidget* widget, gpointer user_data)
{
- FcitxConfigWidget* config_widget = user_data;
- fcitx_config_widget_response(config_widget, CONFIG_WIDGET_SAVE);
+ fcitx_config_widget_response(widget, CONFIG_WIDGET_SAVE);
}