Why not use gtk_window_fullscreen? I've only tried it on a Gnome
desktop, it works well.

On Sun, Apr 27, 2008 at 11:37 AM, Carlos Pereira
<[EMAIL PROTECTED]> wrote:
> Hi there,
>
>  The small working code below shows
>  how my app goes fullscreen and back.
>
>  1) Is there a better way of doing this?
>
>  2) This code works fine in Enlightenment,
>  KDE, BlackBox, IceWM, etc. In Gnome and XFCE
>  it works, but the desktop bars are still visible
>  (I suppose it should be possible to change this?).
>
>  However, in GNOME and only in GNOME, I have to
>  subtract 1 pixel, on width or height, for this to work.
>  In other words, if I replace this:
>
>  gdk_window_move_resize (window->window,
>  0, 0, gdk_screen_width (), gdk_screen_height () - 1);
>
>  by this:
>  gdk_window_move_resize (window->window,
>  0, 0, gdk_screen_width (), gdk_screen_height ());
>
>  poor Gnome WM gets confused, indeed goes fullscreen,
>  but does not come back... :-(
>
>  What is the best way to handle this?
>  going fullscreen is a very useful feature
>  in many scientific/engineering apps.
>
>  Many thanks,
>  Carlos
>
>  *** working code: going fullscreen and back ***
>  #include <gtk/gtk.h>
>  #include <gdk/gdkkeysyms.h>
>
>  int x, y, w, h;
>
>  int press_event (GtkWidget *widget, GdkEventKey *event, GtkWidget *window)
>  {
>  static int fullscreen = FALSE;
>
>  switch (event->keyval)
>   {
>   case GDK_Escape:
>   if (fullscreen == FALSE)
>     {
>     gtk_window_get_position (GTK_WINDOW (window), &x, &y);
>     gtk_window_get_size (GTK_WINDOW (window), &w, &h);
>
>     gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
>     gdk_window_raise (window->window);
>     gdk_window_move_resize (window->window,
>     0, 0, gdk_screen_width (), gdk_screen_height () - 1);
>     fullscreen = TRUE;
>     }
>   else
>     {
>     gtk_window_set_decorated (GTK_WINDOW (window), TRUE);
>     gdk_window_move_resize (window->window, x, y, w, h);
>     fullscreen = FALSE;
>     }
>   }
>
>  return FALSE;
>  }
>
>  int main (int argc, char **argv)
>  {
>  GtkWidget *window;
>
>  gtk_init (&argc, &argv);
>  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
>  gtk_widget_set_size_request (window, 200, 200);
>  g_signal_connect_after (G_OBJECT (window),
>  "key_press_event", G_CALLBACK (press_event), window);
>  gtk_widget_show (window);
>
>  gtk_main ();
>  return 0;
>  }
>
>  _______________________________________________
>  gtk-app-devel-list mailing list
>  gtk-app-devel-list@gnome.org
>  http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to