From: Jean-Philippe Orsini Date: Sun, 8 May 2011 11:40:46 +0000 (+0000) Subject: support of gtk3 X-Git-Tag: v0.8.0.5~776 X-Git-Url: https://git.wpitchoune.net/gitweb/?a=commitdiff_plain;h=f6a63a1beee328ba6a022c9ee1b740866af04807;hp=c2d7605f801c2758a72caf80f0cd11c7c48f8bbd;p=psensor.git support of gtk3 --- diff --git a/po/Makefile.in b/po/Makefile.in index 120519a..78af544 100644 --- a/po/Makefile.in +++ b/po/Makefile.in @@ -21,7 +21,7 @@ srcdir = . top_srcdir = .. -prefix = /home/jporsini/tmp +prefix = /usr/local exec_prefix = ${prefix} datarootdir = ${prefix}/share datadir = ${datarootdir} diff --git a/src/ui.c b/src/ui.c index fe6077b..5f56504 100644 --- a/src/ui.c +++ b/src/ui.c @@ -113,11 +113,32 @@ static GtkWidget *get_menu(struct ui_psensor *ui) return gtk_ui_manager_get_widget(menu_manager, "/MainMenu"); } +static unsigned int enable_alpha_channel(GtkWidget *w) +{ + GdkScreen *screen = gtk_widget_get_screen(w); + +#if (GTK_CHECK_VERSION(3, 0, 0)) + GdkVisual *visual = gdk_screen_get_rgba_visual(screen); + + if (visual) { + gtk_widget_set_visual(w, visual); + return 1; + } +#else + GdkColormap *colormap = gdk_screen_get_rgba_colormap(screen); + + if (colormap) { + gtk_widget_set_colormap(w, colormap); + return 1; + } +#endif + return 0; +} + void ui_window_create(struct ui_psensor *ui) { GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); GdkScreen *screen; - GdkColormap *colormap; GdkPixbuf *icon; GtkIconTheme *icon_theme; GtkWidget *menubar; @@ -132,11 +153,7 @@ void ui_window_create(struct ui_psensor *ui) if (ui->config->alpha_channel_enabled && gdk_screen_is_composited(screen)) { - - colormap = gdk_screen_get_rgba_colormap(screen); - if (colormap) - gtk_widget_set_colormap(window, colormap); - else + if (!enable_alpha_channel(window)) ui->config->alpha_channel_enabled = 0; } else { ui->config->alpha_channel_enabled = 0;