projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix compilation without wxUSE_STREAMS (closes #10900)
[wxWidgets.git]
/
src
/
gtk
/
minifram.cpp
diff --git
a/src/gtk/minifram.cpp
b/src/gtk/minifram.cpp
index 9febe6584f69dc900adf48144b7f4882c1edb912..834489387b4e11fa2e4ca659c3714d3c79a9d975 100644
(file)
--- a/
src/gtk/minifram.cpp
+++ b/
src/gtk/minifram.cpp
@@
-13,7
+13,6
@@
#if wxUSE_MINIFRAME
#include "wx/minifram.h"
#if wxUSE_MINIFRAME
#include "wx/minifram.h"
-#include "wx/gtk/dcclient.h"
#ifndef WX_PRECOMP
#include "wx/settings.h"
#ifndef WX_PRECOMP
#include "wx/settings.h"
@@
-21,6
+20,8
@@
#include "wx/image.h"
#endif
#include "wx/image.h"
#endif
+#include "wx/gtk/dcclient.h"
+
#include <gtk/gtk.h>
//-----------------------------------------------------------------------------
#include <gtk/gtk.h>
//-----------------------------------------------------------------------------
@@
-59,8
+60,11
@@
static wxColor LightContrastColour(const wxColour& c)
extern "C" {
static gboolean gtk_window_own_expose_callback(GtkWidget* widget, GdkEventExpose* gdk_event, wxMiniFrame* win)
{
extern "C" {
static gboolean gtk_window_own_expose_callback(GtkWidget* widget, GdkEventExpose* gdk_event, wxMiniFrame* win)
{
- if (!win->m_hasVMT || gdk_event->count > 0)
+ if (!win->m_hasVMT || gdk_event->count > 0 ||
+ gdk_event->window != widget->window)
+ {
return false;
return false;
+ }
gtk_paint_shadow (widget->style,
widget->window,
gtk_paint_shadow (widget->style,
widget->window,
@@
-85,10
+89,7
@@
static gboolean gtk_window_own_expose_callback(GtkWidget* widget, GdkEventExpose
dc.DrawRectangle( win->m_width - 14, win->m_height-14, 14, 14 );
}
dc.DrawRectangle( win->m_width - 14, win->m_height-14, 14, 14 );
}
- if (!win->GetTitle().empty() &&
- ((style & wxCAPTION) ||
- (style & wxTINY_CAPTION_HORIZ) ||
- (style & wxTINY_CAPTION_VERT)))
+ if (win->m_miniTitle && !win->GetTitle().empty())
{
dc.SetFont( *wxSMALL_FONT );
{
dc.SetFont( *wxSMALL_FONT );
@@
-116,9
+117,11
@@
static gboolean gtk_window_own_expose_callback(GtkWidget* widget, GdkEventExpose
//-----------------------------------------------------------------------------
extern "C" {
//-----------------------------------------------------------------------------
extern "C" {
-static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
+static gboolean
+gtk_window_button_press_callback(GtkWidget* widget, GdkEventButton* gdk_event, wxMiniFrame* win)
{
{
- if (!win->m_hasVMT) return FALSE;
+ if (!win->m_hasVMT || gdk_event->window != widget->window)
+ return false;
if (g_blockEventsOnDrag) return TRUE;
if (g_blockEventsOnScroll) return TRUE;
if (g_blockEventsOnDrag) return TRUE;
if (g_blockEventsOnScroll) return TRUE;
@@
-150,8
+153,7
@@
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
return TRUE;
}
return TRUE;
}
- if ((style & wxCLOSE_BOX) &&
- ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)))
+ if (win->m_miniTitle && (style & wxCLOSE_BOX))
{
if ((y > 3) && (y < 19) && (x > win->m_width-19) && (x < win->m_width-3))
{
{
if ((y > 3) && (y < 19) && (x > win->m_width-19) && (x < win->m_width-3))
{
@@
-160,7
+162,8
@@
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
}
}
}
}
- if (y > win->m_miniEdge-1 + 15) return TRUE;
+ if (y >= win->m_miniEdge + win->m_miniTitle)
+ return true;
gdk_window_raise( win->m_widget->window );
gdk_window_raise( win->m_widget->window );
@@
-172,8
+175,8
@@
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_MOTION_MASK |
GDK_BUTTON1_MOTION_MASK),
GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_MOTION_MASK |
GDK_BUTTON1_MOTION_MASK),
-
(GdkWindow *)
NULL,
-
(GdkCursor *)
NULL,
+ NULL,
+ NULL,
(unsigned int) GDK_CURRENT_TIME );
win->m_diffX = x;
(unsigned int) GDK_CURRENT_TIME );
win->m_diffX = x;
@@
-192,12
+195,13
@@
static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
//-----------------------------------------------------------------------------
extern "C" {
//-----------------------------------------------------------------------------
extern "C" {
-static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win )
+static gboolean
+gtk_window_button_release_callback(GtkWidget* widget, GdkEventButton* gdk_event, wxMiniFrame* win)
{
{
- if (!win->m_hasVMT) return FALSE;
+ if (!win->m_hasVMT || gdk_event->window != widget->window)
+ return false;
if (g_blockEventsOnDrag) return TRUE;
if (g_blockEventsOnScroll) return TRUE;
if (g_blockEventsOnDrag) return TRUE;
if (g_blockEventsOnScroll) return TRUE;
-
if (!win->m_isDragging) return TRUE;
win->m_isDragging = false;
if (!win->m_isDragging) return TRUE;
win->m_isDragging = false;
@@
-226,11
+230,13
@@
static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
extern "C" {
static gboolean
gtk_window_leave_callback(GtkWidget *widget,
extern "C" {
static gboolean
gtk_window_leave_callback(GtkWidget *widget,
- GdkEventCrossing
* WXUNUSED(gdk_event)
,
+ GdkEventCrossing
* gdk_event
,
wxMiniFrame *win)
{
if (!win->m_hasVMT) return FALSE;
if (g_blockEventsOnDrag) return FALSE;
wxMiniFrame *win)
{
if (!win->m_hasVMT) return FALSE;
if (g_blockEventsOnDrag) return FALSE;
+ if (gdk_event->window != widget->window)
+ return false;
gdk_window_set_cursor( widget->window, NULL );
gdk_window_set_cursor( widget->window, NULL );
@@
-243,10
+249,11
@@
gtk_window_leave_callback(GtkWidget *widget,
//-----------------------------------------------------------------------------
extern "C" {
//-----------------------------------------------------------------------------
extern "C" {
-static g
int
+static g
boolean
gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxMiniFrame *win )
{
gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxMiniFrame *win )
{
- if (!win->m_hasVMT) return FALSE;
+ if (!win->m_hasVMT || gdk_event->window != widget->window)
+ return false;
if (g_blockEventsOnDrag) return TRUE;
if (g_blockEventsOnScroll) return TRUE;
if (g_blockEventsOnDrag) return TRUE;
if (g_blockEventsOnScroll) return TRUE;
@@
-310,7
+317,8
@@
bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
const wxPoint &pos, const wxSize &size,
long style, const wxString &name )
{
const wxPoint &pos, const wxSize &size,
long style, const wxString &name )
{
- if ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT))
+ m_miniTitle = 0;
+ if (style & wxCAPTION)
m_miniTitle = 16;
if (style & wxRESIZE_BORDER)
m_miniTitle = 16;
if (style & wxRESIZE_BORDER)
@@
-346,10
+354,9
@@
bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
m_gdkFunc = 0;
if (style & wxRESIZE_BORDER)
m_gdkFunc = GDK_FUNC_RESIZE;
m_gdkFunc = 0;
if (style & wxRESIZE_BORDER)
m_gdkFunc = GDK_FUNC_RESIZE;
-
- // need to reset default size after changing m_gdkDecor
gtk_window_set_default_size(GTK_WINDOW(m_widget), m_width, m_height);
m_decorSize.Set(0, 0);
gtk_window_set_default_size(GTK_WINDOW(m_widget), m_width, m_height);
m_decorSize.Set(0, 0);
+ m_deferShow = false;
// don't allow sizing smaller than decorations
GdkGeometry geom;
// don't allow sizing smaller than decorations
GdkGeometry geom;
@@
-362,8
+369,7
@@
bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(m_parent->m_widget) );
}
gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(m_parent->m_widget) );
}
- if ((style & wxCLOSE_BOX) &&
- ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)))
+ if (m_miniTitle && (style & wxCLOSE_BOX))
{
wxImage img = wxBitmap((const char*)close_bits, 16, 16).ConvertToImage();
img.Replace(0,0,0,123,123,123);
{
wxImage img = wxBitmap((const char*)close_bits, 16, 16).ConvertToImage();
img.Replace(0,0,0,123,123,123);