talons

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

manage_window.c (2418B)


      1 /*
      2  * Claws Mail -- a GTK based, lightweight, and fast e-mail client
      3  * Copyright (C) 1999-2013 Hiroyuki Yamamoto and the Claws Mail team
      4  *
      5  * This program is free software; you can redistribute it and/or modify
      6  * it under the terms of the GNU General Public License as published by
      7  * the Free Software Foundation; either version 3 of the License, or
      8  * (at your option) any later version.
      9  *
     10  * This program is distributed in the hope that it will be useful,
     11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13  * GNU General Public License for more details.
     14  *
     15  * You should have received a copy of the GNU General Public License
     16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
     17  *
     18  */
     19 
     20 #include <glib.h>
     21 #include <gtk/gtk.h>
     22 
     23 #include "manage_window.h"
     24 #include "utils.h"
     25 
     26 GtkWidget *focus_window;
     27 
     28 gint manage_window_focus_in(GtkWidget *widget, GdkEventFocus *event,
     29 			    gpointer data)
     30 {
     31 /*	const gchar *title = NULL; */
     32 
     33 	if (!GTK_IS_WINDOW(widget))
     34 		return FALSE;
     35 
     36 /*	title = gtk_window_get_title(GTK_WINDOW(widget));
     37 	 debug_print("Focus in event: window: %p - %s\n", widget,
     38 		    title ? title : "no title"); */
     39 
     40 	focus_window = widget;
     41 
     42 	return FALSE;
     43 }
     44 
     45 gint manage_window_focus_out(GtkWidget *widget, GdkEventFocus *event,
     46 			     gpointer data)
     47 {
     48 /*	const gchar *title = NULL; */
     49 
     50 	if (!GTK_IS_WINDOW(widget))
     51 		return FALSE;
     52 
     53 /*	title = gtk_window_get_title(GTK_WINDOW(widget));
     54 	 debug_print("Focus out event: window: %p - %s\n", widget,
     55 		    title ? title : "no title"); */
     56 
     57 	if (focus_window == widget)
     58 		focus_window = NULL;
     59 
     60 	return FALSE;
     61 }
     62 
     63 gint manage_window_unmap(GtkWidget *widget, GdkEventAny *event, gpointer data)
     64 {
     65 /*	const gchar *title = gtk_window_get_title(GTK_WINDOW(widget));
     66 	 debug_print("Unmap event: window: %p - %s\n", widget,
     67 		    title ? title : "no title"); */
     68 
     69 	if (focus_window == widget)
     70 		focus_window = NULL;
     71 
     72 	return FALSE;
     73 }
     74 
     75 void manage_window_destroy(GtkWidget *widget, gpointer data)
     76 {
     77 /*	const gchar *title = gtk_window_get_title(GTK_WINDOW(widget));
     78 	 debug_print("Destroy event: window: %p - %s\n", widget,
     79 		    title ? title : "no title"); */
     80 
     81 
     82 	if (focus_window == widget)
     83 		focus_window = NULL;
     84 }
     85 
     86 void manage_window_set_transient(GtkWindow *window)
     87 {
     88 	if (window && focus_window)
     89 		gtk_window_set_transient_for(window, GTK_WINDOW(focus_window));
     90 }