More Gtk+3 fixes
cover More Gtk+3 fixes
Two patches more on top of the 16 patch set earlier: these fix the last deprecation warnings (with GTK 3.20).
I've pushed these into the same branch and have nothing more planned for matchbox-desktop-2.
Jussi
The following changes since commit 606344f8b1652bcc3d369911990cf5bc46a16ab6:
Don't set the desktop fullscreen if MODE_DESKTOP (2016-04-28 10:49:55 +0300)
are available in the git repository at:
git://github.com/jku/matchbox-desktop-2 gtk3
https://github.com/jku/matchbox-desktop-2/tree/gtk3
Jussi Kukkonen (2):
TakuCategoryBar: Avoid deprecated API
TakuIconTile: Avoid deprecated icon API
libtaku/taku-icon-tile.c | 24 +++++++++++++++++++----- libtaku/taku-launcher-tile.c | 32 +++++++++++++++++--------------- libtaku/taku-menu-desktop.c | 8 ++------ libtaku/taku-menu.h | 3 +-- src/desktop.c | 4 ---- src/taku-category-bar.c | 27 ++++++--------------------- 6 files changed, 45 insertions(+), 53 deletions(-)
Signature · 1 line
2.8.1
PATCH 1/2 TakuCategoryBar: Avoid deprecated API
--- src/taku-category-bar.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-)
src/taku-category-bar.c +6 -21
@@ -192,7 +192,6 @@ popup_menu (GtkWidget *button, GdkEventButton *event, gpointer user_data) label =gtk_label_new (category->name);make_bold (GTK_LABEL (label)); -gtk_misc_set_alignment (GTK_MISC (label),0.5 ,0.0 );gtk_widget_show (label);gtk_container_add (GTK_CONTAINER (menu_item), label); }
@@ -216,16 +215,14 @@ static void taku_category_bar_init (TakuCategoryBar *bar) {TakuCategoryBarPrivate *priv; -GtkWidget *button, *arrow; -GtkSizeGroup *size_group; +GtkWidget *button; priv =GET_PRIVATE (bar); - size_group =gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL ); -/* Previous button */ - priv->prev_button = button =gtk_button_new (); + priv->prev_button = button =gtk_button_new_from_icon_name ("go-previous-symbolic" , +GTK_ICON_SIZE_BUTTON );gtk_widget_set_name (button,"MatchboxDesktopPrevButton" );atk_object_set_name (gtk_widget_get_accessible (button),"GroupPrevious" );gtk_button_set_relief (GTK_BUTTON (button),GTK_RELIEF_NONE );
@@ -233,11 +230,6 @@ taku_category_bar_init (TakuCategoryBar *bar)gtk_widget_show (button);gtk_box_pack_start (GTK_BOX (bar), button, FALSE, TRUE,0 ); - arrow =gtk_arrow_new (GTK_ARROW_LEFT ,GTK_SHADOW_NONE ); -gtk_widget_show (arrow); -gtk_container_add (GTK_CONTAINER (button), arrow); -gtk_size_group_add_widget (size_group, arrow); -/* Category name button */ priv->popup_button = button =gtk_toggle_button_new ();
@@ -252,11 +244,11 @@ taku_category_bar_init (TakuCategoryBar *bar)make_bold (GTK_LABEL (priv->switcher_label));gtk_widget_show (GTK_WIDGET (priv->switcher_label));gtk_container_add (GTK_CONTAINER (button),GTK_WIDGET (priv->switcher_label)); -gtk_size_group_add_widget (size_group,GTK_WIDGET (priv->switcher_label));/* Next button */ - priv->next_button = button =gtk_button_new (); + priv->next_button = button =gtk_button_new_from_icon_name ("go-next-symbolic" , +GTK_ICON_SIZE_BUTTON );gtk_widget_set_name (button,"MatchboxDesktopNextButton" );atk_object_set_name (gtk_widget_get_accessible (button),"GroupNext" );
@@ -264,13 +256,6 @@ taku_category_bar_init (TakuCategoryBar *bar)g_signal_connect_swapped (button,"clicked" ,G_CALLBACK (next_category), bar);gtk_widget_show (button);gtk_box_pack_end (GTK_BOX (bar), button, FALSE, TRUE,0 ); - - arrow =gtk_arrow_new (GTK_ARROW_RIGHT ,GTK_SHADOW_NONE ); -gtk_widget_show (arrow); -gtk_container_add (GTK_CONTAINER (button), arrow); -gtk_size_group_add_widget (size_group, arrow); - -g_object_unref (size_group); }
@@ -324,7 +309,7 @@ taku_category_bar_get_current (TakuCategoryBar *bar) {TakuCategoryBarPrivate *priv; -g_return_if_fail (TAKU_IS_CATEGORY_BAR (bar)); +g_return_val_if_fail (TAKU_IS_CATEGORY_BAR (bar),NULL ); priv =GET_PRIVATE (bar);return (TakuLauncherCategory *)priv->current_category->data;
Signature · 1 line
2.8.1
PATCH 2/2 TakuIconTile: Avoid deprecated icon API
Don't use a named icon size: that is no longer supported.
Instead add style property "taku-icon-size" to TakuIconTile and use that.
--- libtaku/taku-icon-tile.c | 24 +++++++++++++++++++----- libtaku/taku-launcher-tile.c | 32 +++++++++++++++++--------------- libtaku/taku-menu-desktop.c | 8 ++------ libtaku/taku-menu.h | 3 +-- src/desktop.c | 4 ---- 5 files changed, 39 insertions(+), 32 deletions(-)
libtaku/taku-icon-tile.c +19 -5
@@ -63,14 +63,14 @@ tile_arrange (TakuIconTile *tile)switch (orientation) {case GTK_ORIENTATION_VERTICAL : -gtk_misc_set_alignment (GTK_MISC (tile->priv->primary),0.5 ,0.5 ); -gtk_misc_set_alignment (GTK_MISC (tile->priv->secondary),0.5 ,0.5 ); +gtk_label_set_xalign (GTK_LABEL (tile->priv->primary),0.5 ); +gtk_label_set_xalign (GTK_LABEL (tile->priv->secondary),0.5 ); box =gtk_box_new (GTK_ORIENTATION_VERTICAL ,6 );break ;default :case GTK_ORIENTATION_HORIZONTAL : -gtk_misc_set_alignment (GTK_MISC (tile->priv->primary),0.0 ,0.5 ); -gtk_misc_set_alignment (GTK_MISC (tile->priv->secondary),0.0 ,0.5 ); +gtk_label_set_xalign (GTK_LABEL (tile->priv->primary),0.0 ); +gtk_label_set_xalign (GTK_LABEL (tile->priv->secondary),0.0 ); box =gtk_box_new (GTK_ORIENTATION_HORIZONTAL ,6 );break ; }
@@ -243,6 +243,15 @@ taku_icon_tile_class_init (TakuIconTileClass *klass)GTK_TYPE_ORIENTATION ,GTK_ORIENTATION_HORIZONTAL , G_PARAM_READABLE)); +gtk_widget_class_install_style_property (widget_class, +g_param_spec_uint ("taku-icon-size" , +"Taku icon size" , +"Icon size used by all Taku Icons" , +0 , +256 , +64 , +G_PARAM_READABLE )); + } static void
@@ -311,10 +320,15 @@ taku_icon_tile_set_pixbuf (TakuIconTile *tile, GdkPixbuf *pixbuf)void taku_icon_tile_set_icon_name (TakuIconTile *tile,const char *name) { +uint size;g_return_if_fail (TAKU_IS_ICON_TILE (tile)); +gtk_widget_style_get (GTK_WIDGET (tile), +"taku-icon-size" , &size, +NULL ); +gtk_image_set_from_icon_name (GTK_IMAGE (tile->priv->icon), - name,gtk_icon_size_from_name ("taku-icon" )); + name, size); }void
libtaku/taku-launcher-tile.c +17 -15
@@ -38,8 +38,6 @@ struct _TakuLauncherTilePrivategboolean loading_icon;/* If the icon is queued to be loaded */ }; -/* Icon size ID for the TakuIcon size */ -static GtkIconSize icon_size;/* Queue of tiles with pending icons to load */ static GQueue queue =G_QUEUE_INIT ;
@@ -50,6 +48,7 @@ load_icon (gpointer data)TakuLauncherTile *tile;GdkPixbuf *pixbuf;int i; +guint size;/* Per iteration, load a few icons at once */ for (i =0 ; i <5 ; i++) {
@@ -58,8 +57,11 @@ load_icon (gpointer data)if (tile ==NULL ) {return TRUE; } - - pixbuf =taku_menu_item_get_icon (tile->priv->item, (GtkWidget *)tile, icon_size); + +gtk_widget_style_get (GTK_WIDGET (tile), +"taku-icon-size" , &size, +NULL ); + pixbuf =taku_menu_item_get_icon (tile->priv->item, size);if (pixbuf) {taku_icon_tile_set_pixbuf (TAKU_ICON_TILE (tile), pixbuf);
@@ -110,7 +112,7 @@ taku_launcher_tile_finalize (GObject *object)static gboolean reset_state (gpointer data) { -gtk_widget_set_state (GTK_WIDGET (data),GTK_STATE_NORMAL ); +gtk_widget_unset_state_flags (GTK_WIDGET (data),GTK_STATE_FLAG_ACTIVE );return FALSE; }
@@ -119,7 +121,7 @@ taku_launcher_tile_activate (TakuLauncherTile *tile) {TakuLauncherTile *launcher =TAKU_LAUNCHER_TILE (tile); -gtk_widget_set_state (GTK_WIDGET (tile),GTK_STATE_ACTIVE ); +gtk_widget_set_state_flags (GTK_WIDGET (tile),GTK_STATE_FLAG_ACTIVE , FALSE);g_timeout_add (500 , reset_state, tile);
@@ -147,12 +149,6 @@ taku_launcher_tile_class_init (TakuLauncherTileClass *klass) object_class->finalize = taku_launcher_tile_finalize; -/* Lookup the icon size from the theme */ - icon_size =gtk_icon_size_from_name ("taku-icon" ); -if (icon_size ==GTK_ICON_SIZE_INVALID ) { -g_warning ("taku-icon size not registered, falling back" ); - icon_size =GTK_ICON_SIZE_BUTTON ; - }taku_idle_queue_add (&queue, load_icon,NULL ); }
@@ -174,17 +170,23 @@ taku_launcher_tile_new_from_item (TakuMenuItem *item) {TakuLauncherTile *tile;GList *l; +uint size; tile =TAKU_LAUNCHER_TILE (taku_launcher_tile_new ()); tile->priv->item = item; - + + +gtk_widget_style_get (GTK_WIDGET (tile), +"taku-icon-size" , &size, +NULL ); +taku_icon_tile_set_primary (TAKU_ICON_TILE (tile),taku_menu_item_get_name (item));taku_icon_tile_set_secondary (TAKU_ICON_TILE (tile),taku_menu_item_get_description (item));taku_icon_tile_set_pixbuf (TAKU_ICON_TILE (tile), -gtk_widget_render_icon (GTK_WIDGET (tile),GTK_STOCK_REFRESH , icon_size,NULL )); - +get_icon ("view-refresh" , size)); +/* Don't need to update the icon here, because we'll get a style-set signal when the widget is realised which will update the icon. */
libtaku/taku-menu-desktop.c +2 -6
@@ -122,15 +122,11 @@ taku_menu_item_get_description (TakuMenuItem *item) }GdkPixbuf * -taku_menu_item_get_icon (TakuMenuItem *item,GtkWidget *widget,GtkIconSize size) +taku_menu_item_get_icon (TakuMenuItem *item,int size) { -int width =64 ; -g_return_val_if_fail (item,NULL ); -gtk_icon_size_lookup (size, &width,NULL ); - -return get_icon (item->icon_name, width); +return get_icon (item->icon_name, size); } GList*
libtaku/taku-menu.h +1 -2
@@ -103,8 +103,7 @@ taku_menu_item_get_description (TakuMenuItem *item);GdkPixbuf *taku_menu_item_get_icon (TakuMenuItem *item, -GtkWidget *widget, -GtkIconSize size); +int size);GList *taku_menu_item_get_categories (TakuMenuItem *item);
src/desktop.c +0 -4
@@ -194,10 +194,6 @@ create_desktop (DesktopMode mode)GdkScreen *screen;int width, height; -/* Register the magic taku-icon size so that it can be controlled from the -theme. */ -gtk_icon_size_register ("taku-icon" ,64 ,64 ); - window =gtk_window_new (GTK_WINDOW_TOPLEVEL );gtk_widget_set_name (window,"TakuWindow" );gtk_window_set_title (GTK_WINDOW (window),_ ("Desktop" ));
Signature · 1 line
2.8.1