we now send iconize events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -332,7 +332,7 @@ gtk_frame_map_callback( GtkWidget * WXUNUSED(widget),
|
||||
GdkEvent * WXUNUSED(event),
|
||||
wxFrame *win )
|
||||
{
|
||||
win->m_isIconized = FALSE;
|
||||
win->SetIconizeState(FALSE);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -344,7 +344,7 @@ gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget),
|
||||
GdkEvent * WXUNUSED(event),
|
||||
wxFrame *win )
|
||||
{
|
||||
win->m_isIconized = TRUE;
|
||||
win->SetIconizeState(TRUE);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -356,8 +356,8 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev
|
||||
GtkPizza *pizza = GTK_PIZZA(widget);
|
||||
|
||||
gtk_paint_flat_box (win->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, &gdk_event->area, win->m_widget, "base", 0, 0, -1, -1);
|
||||
|
||||
GTK_SHADOW_NONE, &gdk_event->area, win->m_widget, "base", 0, 0, -1, -1);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -370,8 +370,8 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW
|
||||
{
|
||||
GtkPizza *pizza = GTK_PIZZA(widget);
|
||||
|
||||
gtk_paint_flat_box (win->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, rect, win->m_widget, "base", 0, 0, -1, -1);
|
||||
gtk_paint_flat_box (win->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, rect, win->m_widget, "base", 0, 0, -1, -1);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -448,7 +448,7 @@ void wxFrame::Init()
|
||||
m_toolBarDetached = FALSE;
|
||||
m_insertInClientArea = TRUE;
|
||||
m_isFrame = TRUE;
|
||||
m_isIconized = FALSE;
|
||||
m_isIconized = TRUE;
|
||||
m_fsIsShowing = FALSE;
|
||||
m_themeEnabled = TRUE;
|
||||
}
|
||||
@@ -489,7 +489,7 @@ bool wxFrame::Create( wxWindow *parent,
|
||||
m_insertCallback = (wxInsertChildFunction) wxInsertChildInFrame;
|
||||
|
||||
GtkWindowType win_type = GTK_WINDOW_TOPLEVEL;
|
||||
|
||||
|
||||
if (style & wxFRAME_TOOL_WINDOW)
|
||||
win_type = GTK_WINDOW_POPUP;
|
||||
|
||||
@@ -537,7 +537,7 @@ bool wxFrame::Create( wxWindow *parent,
|
||||
#endif
|
||||
|
||||
/* we donm't allow the frame to get the focus as otherwise
|
||||
the frame will grabit at arbitrary fcous changes. */
|
||||
the frame will grab it at arbitrary focus changes. */
|
||||
GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
|
||||
|
||||
if (m_parent) m_parent->AddChild( this );
|
||||
@@ -601,24 +601,24 @@ bool wxFrame::ShowFullScreen(bool show, long style )
|
||||
if (show == m_fsIsShowing) return FALSE; // return what?
|
||||
|
||||
m_fsIsShowing = show;
|
||||
|
||||
|
||||
if (show)
|
||||
{
|
||||
m_fsSaveStyle = m_windowStyle;
|
||||
m_fsSaveFlag = style;
|
||||
GetPosition( &m_fsSaveFrame.x, &m_fsSaveFrame.y );
|
||||
GetSize( &m_fsSaveFrame.width, &m_fsSaveFrame.height );
|
||||
|
||||
|
||||
gtk_widget_hide( m_widget );
|
||||
gtk_widget_unrealize( m_widget );
|
||||
|
||||
|
||||
m_windowStyle = wxSIMPLE_BORDER;
|
||||
|
||||
|
||||
int x;
|
||||
int y;
|
||||
wxDisplaySize( &x, &y );
|
||||
SetSize( 0, 0, x, y );
|
||||
|
||||
|
||||
gtk_widget_realize( m_widget );
|
||||
gtk_widget_show( m_widget );
|
||||
}
|
||||
@@ -626,15 +626,15 @@ bool wxFrame::ShowFullScreen(bool show, long style )
|
||||
{
|
||||
gtk_widget_hide( m_widget );
|
||||
gtk_widget_unrealize( m_widget );
|
||||
|
||||
|
||||
m_windowStyle = m_fsSaveStyle;
|
||||
|
||||
|
||||
SetSize( m_fsSaveFrame.x, m_fsSaveFrame.y, m_fsSaveFrame.width, m_fsSaveFrame.height );
|
||||
|
||||
|
||||
gtk_widget_realize( m_widget );
|
||||
gtk_widget_show( m_widget );
|
||||
}
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -1216,3 +1216,19 @@ bool wxFrame::IsIconized() const
|
||||
{
|
||||
return m_isIconized;
|
||||
}
|
||||
|
||||
void wxFrame::SetIconizeState(bool iconize)
|
||||
{
|
||||
if ( iconize != m_isIconized )
|
||||
{
|
||||
m_isIconized = iconize;
|
||||
(void)SendIconizeEvent(iconize);
|
||||
}
|
||||
else
|
||||
{
|
||||
// this is not supposed to happen if we're called only from
|
||||
// gtk_frame_(un)map_callback!
|
||||
wxFAIL_MSG( _T("unexpected call to SendIconizeEvent ignored") );
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -190,7 +190,7 @@ gtk_pizza_init (GtkPizza *pizza)
|
||||
pizza->height = 20;
|
||||
|
||||
pizza->bin_window = NULL;
|
||||
|
||||
|
||||
pizza->xoffset = 0;
|
||||
pizza->yoffset = 0;
|
||||
|
||||
@@ -251,7 +251,7 @@ gtk_pizza_set_clear (GtkPizza *pizza,
|
||||
pizza->clear_on_draw = clear;
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
gtk_pizza_set_filter (GtkPizza *pizza,
|
||||
gboolean use)
|
||||
{
|
||||
@@ -259,9 +259,9 @@ gtk_pizza_set_filter (GtkPizza *pizza,
|
||||
g_return_if_fail (GTK_IS_PIZZA (pizza));
|
||||
|
||||
pizza->use_filter = use;
|
||||
}
|
||||
|
||||
void
|
||||
}
|
||||
|
||||
void
|
||||
gtk_pizza_set_external (GtkPizza *pizza,
|
||||
gboolean expose)
|
||||
{
|
||||
@@ -436,7 +436,7 @@ gtk_pizza_set_size (GtkPizza *pizza,
|
||||
}
|
||||
}
|
||||
|
||||
gint
|
||||
gint
|
||||
gtk_pizza_child_resized (GtkPizza *pizza,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
@@ -459,10 +459,10 @@ gtk_pizza_child_resized (GtkPizza *pizza,
|
||||
(child->height == widget->allocation.height));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gtk_pizza_map (GtkWidget *widget)
|
||||
{
|
||||
@@ -549,8 +549,7 @@ gtk_pizza_realize (GtkWidget *widget)
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.colormap = gtk_widget_get_colormap (widget);
|
||||
attributes.event_mask =
|
||||
GDK_VISIBILITY_NOTIFY_MASK;
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK;
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
|
||||
|
||||
widget->window = gdk_window_new(gtk_widget_get_parent_window (widget),
|
||||
@@ -561,21 +560,20 @@ gtk_pizza_realize (GtkWidget *widget)
|
||||
attributes.y = 0;
|
||||
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
attributes.event_mask |=
|
||||
GDK_EXPOSURE_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK |
|
||||
GDK_BUTTON_MOTION_MASK |
|
||||
GDK_BUTTON1_MOTION_MASK |
|
||||
GDK_BUTTON2_MOTION_MASK |
|
||||
GDK_BUTTON3_MOTION_MASK |
|
||||
GDK_BUTTON_PRESS_MASK |
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_KEY_PRESS_MASK |
|
||||
GDK_KEY_RELEASE_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK |
|
||||
GDK_FOCUS_CHANGE_MASK;
|
||||
attributes.event_mask |= GDK_EXPOSURE_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_POINTER_MOTION_HINT_MASK |
|
||||
GDK_BUTTON_MOTION_MASK |
|
||||
GDK_BUTTON1_MOTION_MASK |
|
||||
GDK_BUTTON2_MOTION_MASK |
|
||||
GDK_BUTTON3_MOTION_MASK |
|
||||
GDK_BUTTON_PRESS_MASK |
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_KEY_PRESS_MASK |
|
||||
GDK_KEY_RELEASE_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK |
|
||||
GDK_FOCUS_CHANGE_MASK;
|
||||
|
||||
pizza->bin_window = gdk_window_new(widget->window,
|
||||
&attributes, attributes_mask);
|
||||
@@ -775,7 +773,7 @@ gtk_pizza_expose (GtkWidget *widget,
|
||||
gtk_widget_event (child->widget, (GdkEvent*) &child_event);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -1189,29 +1187,29 @@ gtk_pizza_filter (GdkXEvent *gdk_xevent,
|
||||
GtkPizza *pizza;
|
||||
|
||||
xevent = (XEvent *)gdk_xevent;
|
||||
|
||||
|
||||
pizza = GTK_PIZZA (data);
|
||||
|
||||
|
||||
if (!pizza->use_filter)
|
||||
return GDK_FILTER_CONTINUE;
|
||||
|
||||
switch (xevent->type)
|
||||
{
|
||||
case Expose:
|
||||
if (xevent->xexpose.serial == pizza->configure_serial)
|
||||
{
|
||||
xevent->xexpose.x += pizza->scroll_x;
|
||||
xevent->xexpose.y += pizza->scroll_y;
|
||||
}
|
||||
break;
|
||||
case Expose:
|
||||
if (xevent->xexpose.serial == pizza->configure_serial)
|
||||
{
|
||||
xevent->xexpose.x += pizza->scroll_x;
|
||||
xevent->xexpose.y += pizza->scroll_y;
|
||||
}
|
||||
break;
|
||||
|
||||
case ConfigureNotify:
|
||||
{
|
||||
pizza->configure_serial = xevent->xconfigure.serial;
|
||||
pizza->scroll_x = xevent->xconfigure.x;
|
||||
pizza->scroll_y = xevent->xconfigure.y;
|
||||
}
|
||||
break;
|
||||
case ConfigureNotify:
|
||||
{
|
||||
pizza->configure_serial = xevent->xconfigure.serial;
|
||||
pizza->scroll_x = xevent->xconfigure.x;
|
||||
pizza->scroll_y = xevent->xconfigure.y;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return GDK_FILTER_CONTINUE;
|
||||
@@ -1231,7 +1229,7 @@ gtk_pizza_main_filter (GdkXEvent *gdk_xevent,
|
||||
|
||||
xevent = (XEvent *)gdk_xevent;
|
||||
pizza = GTK_PIZZA (data);
|
||||
|
||||
|
||||
if (!pizza->use_filter)
|
||||
return GDK_FILTER_CONTINUE;
|
||||
|
||||
@@ -1251,7 +1249,7 @@ gtk_pizza_main_filter (GdkXEvent *gdk_xevent,
|
||||
pizza->visibility = GDK_VISIBILITY_UNOBSCURED;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return GDK_FILTER_REMOVE;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user