]> git.saurik.com Git - wxWidgets.git/commitdiff
add wxEVT_MAXIMIZE support to wxGTK
authorPaul Cornett <paulcor@bullseye.com>
Wed, 9 Mar 2011 17:22:43 +0000 (17:22 +0000)
committerPaul Cornett <paulcor@bullseye.com>
Wed, 9 Mar 2011 17:22:43 +0000 (17:22 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67164 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
interface/wx/event.h
src/gtk/toplevel.cpp

index 8687861a39921d6748065491a8357d14be81e669..11cc48733ef6e7a0594f69e842dd95d57beda2b5 100644 (file)
@@ -461,7 +461,6 @@ All (GUI):
 - Added EVT_RIBBONBAR_TAB_LEFT_DCLICK event (snowleopard).
 - Fix display of right aligned columns in wxGenericListCtrl (jl).
 - Restore text drag-and-drop in wxSTC broken by Scintilla 2 update (Jens Lody).
-- Improve wxGTK print/page setup dialog (rafravago).
 - Add support for id ranges to XRC (David Hart).
 - Added wxToolbook XRC handler (Andrea Zanellato).
 - Added wxDocManager::FindTemplate() (troelsk).
@@ -479,7 +478,9 @@ All (GUI):
 
 GTK:
 
+- Improve print/page setup dialog (rafravago).
 - Switch to GtkTooltip from deprecated GtkTooltips (Emilien Kia).
+- wxTLW generates wxEVT_MAXIMIZE
 
 MSW:
 
index 9ebf57c12df9ede32dd02a9010e5aa675bc8f5b4..9e5bb813236b6109a13c48b62959e932ee263cb0 100644 (file)
@@ -1787,7 +1787,7 @@ public:
     not sent when the window is restored to its original size after it had been
     maximized, only a normal wxSizeEvent is generated in this case.
 
-    Currently this event is only generated in wxMSW, wxOSX/Cocoa and wxOS2
+    Currently this event is only generated in wxMSW, wxGTK, wxOSX/Cocoa and wxOS2
     ports so portable programs should only rely on receiving @c wxEVT_SIZE and
     not necessarily this event when the window is maximized.
 
index 4e3e5603235e8ba503b61951b562e5fb97b9daa2..28f4fafcea6c4482373661397ffbf0b309b06952 100644 (file)
@@ -383,6 +383,14 @@ gtk_frame_window_state_callback( GtkWidget* WXUNUSED(widget),
     if (event->changed_mask & GDK_WINDOW_STATE_ICONIFIED)
         win->SetIconizeState((event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) != 0);
 
+    // if maximized bit changed and it is now set
+    if (event->changed_mask & event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED)
+    {
+        wxMaximizeEvent event(win->GetId());
+        event.SetEventObject(win);
+        win->HandleWindowEvent(event);
+    }
+
     return false;
 }
 }
@@ -1210,10 +1218,8 @@ void wxTopLevelWindowGTK::Maximize(bool maximize)
 
 bool wxTopLevelWindowGTK::IsMaximized() const
 {
-    if(!m_widget->window)
-        return false;
-
-    return gdk_window_get_state(m_widget->window) & GDK_WINDOW_STATE_MAXIMIZED;
+    return m_widget->window &&
+        (gdk_window_get_state(m_widget->window) & GDK_WINDOW_STATE_MAXIMIZED);
 }
 
 void wxTopLevelWindowGTK::Restore()