talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 6d269b77d20c3a9685d14c89f82bcb12e5b2dc73
parent 6df7cd1377167c0e0fd6b71f29d6204182546faf
Author: Colin Leroy <colin@colino.net>
Date:   Mon,  6 Oct 2008 22:36:49 +0000

2008-10-06 [colin]	3.6.0cvs8

	* src/mainwindow.c
	* src/mainwindow.h
		Handle fullscreen via F11. Patch by
		Michael Rasmussen

Diffstat:
MChangeLog | 7+++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/mainwindow.c | 33+++++++++++++++++++++++++++------
Msrc/mainwindow.h | 3++-
5 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,10 @@ +2008-10-06 [colin] 3.6.0cvs8 + + * src/mainwindow.c + * src/mainwindow.h + Handle fullscreen via F11. Patch by + Michael Rasmussen + 2008-10-06 [colin] 3.6.0cvs7 * src/common/ssl.c diff --git a/PATCHSETS b/PATCHSETS @@ -3564,3 +3564,4 @@ ( cvs diff -u -r 1.274.2.276 -r 1.274.2.277 src/mainwindow.c; ) > 3.6.0cvs5.patchset ( cvs diff -u -r 1.83.2.144 -r 1.83.2.145 src/mimeview.c; ) > 3.6.0cvs6.patchset ( cvs diff -u -r 1.9.2.32 -r 1.9.2.33 src/common/ssl.c; ) > 3.6.0cvs7.patchset +( cvs diff -u -r 1.274.2.277 -r 1.274.2.278 src/mainwindow.c; cvs diff -u -r 1.39.2.51 -r 1.39.2.52 src/mainwindow.h; ) > 3.6.0cvs8.patchset diff --git a/configure.ac b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=6 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=7 +EXTRA_VERSION=8 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/mainwindow.c b/src/mainwindow.c @@ -1283,6 +1283,19 @@ static gboolean mainwindow_key_pressed (GtkWidget *widget, GdkEventKey *event, } } break; +#ifndef MAEMO + case GDK_F11: + if (mainwin->fullscreen) { + gtk_window_unfullscreen(GTK_WINDOW(mainwin->window)); + mainwin->fullscreen = FALSE; + } + else { + gtk_window_fullscreen(GTK_WINDOW(mainwin->window)); + mainwin->fullscreen = TRUE; + } + break; +#endif + #ifdef MAEMO case GDK_F6: if (maemo_mainwindow_is_fullscreen(widget)) { @@ -2237,6 +2250,8 @@ MainWindow *main_window_create() #ifdef MAEMO main_window_install_maemo_hooks(mainwin); #endif + mainwin->fullscreen = FALSE; + return mainwin; } @@ -2813,8 +2828,12 @@ void main_window_get_size(MainWindow *mainwin) } allocation = &(GTK_WIDGET_PTR(mainwin->summaryview)->allocation); - - if (allocation->width > 1 && allocation->height > 1) { + + if (mainwin->fullscreen) { + debug_print("mainwin in full screen state. " + "Keeping original settings\n"); + } + if (allocation->width > 1 && allocation->height > 1 && !mainwin->fullscreen) { prefs_common.summaryview_width = allocation->width; if (messageview_is_visible(mainwin->messageview)) @@ -2825,20 +2844,22 @@ void main_window_get_size(MainWindow *mainwin) allocation = &mainwin->window->allocation; if (allocation->width > 1 && allocation->height > 1 && - !prefs_common.mainwin_maximised) { + !prefs_common.mainwin_maximised && !mainwin->fullscreen) { prefs_common.mainview_height = allocation->height; prefs_common.mainwin_width = allocation->width; prefs_common.mainwin_height = allocation->height; } allocation = &(GTK_WIDGET_PTR(mainwin->folderview)->allocation); - if (allocation->width > 1 && allocation->height > 1) { + if (allocation->width > 1 && allocation->height > 1 && + !mainwin->fullscreen) { prefs_common.folderview_width = allocation->width; prefs_common.folderview_height = allocation->height; } allocation = &(GTK_WIDGET_PTR(mainwin->messageview)->allocation); - if (allocation->width > 1 && allocation->height > 1) { + if (allocation->width > 1 && allocation->height > 1 && + !mainwin->fullscreen) { prefs_common.msgview_width = allocation->width; prefs_common.msgview_height = allocation->height; } @@ -2858,7 +2879,7 @@ void main_window_get_position(MainWindow *mainwin) { gint x, y; - if (prefs_common.mainwin_maximised) + if (prefs_common.mainwin_maximised || mainwin->fullscreen) return; gtkut_widget_get_uposition(mainwin->window, &x, &y); diff --git a/src/mainwindow.h b/src/mainwindow.h @@ -142,7 +142,8 @@ struct _MainWindow gboolean in_folder; GtkActionGroup *action_group; GtkUIManager *ui_manager; - + + gboolean fullscreen; }; MainWindow *main_window_create (void);