Avoid calling gtk_window_get_position() from "configure-event" handler, if possible.

This avoids a round trip to the X server, which is expensive over a remote connection.
Closes #15116


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2013-08-17 16:25:13 +00:00
parent fa0681e744
commit c37b0f0907
2 changed files with 68 additions and 40 deletions

View File

@@ -94,6 +94,8 @@ public:
virtual void GTKHandleRealized();
void GTKConfigureEvent(int x, int y);
// do *not* call this to iconize the frame, this is a private function!
void SetIconizeState(bool iconic);
@@ -108,7 +110,11 @@ public:
m_gdkDecor;
// size of WM decorations
wxSize m_decorSize;
struct DecorSize
{
int left, right, top, bottom;
};
DecorSize m_decorSize;
// private gtk_timeout_add result for mimicing wxUSER_ATTENTION_INFO and
// wxUSER_ATTENTION_ERROR difference, -2 for no hint, -1 for ERROR hint, rest for GtkTimeout handle.
@@ -119,7 +125,7 @@ public:
// return the size of the window without WM decorations
void GTKDoGetSize(int *width, int *height) const;
void GTKUpdateDecorSize(const wxSize& decorSize);
void GTKUpdateDecorSize(const DecorSize& decorSize);
protected:
// give hints to the Window Manager for how the size
@@ -145,7 +151,7 @@ protected:
private:
void Init();
wxSize& GetCachedDecorSize();
DecorSize& GetCachedDecorSize();
// size hint increments
int m_incWidth, m_incHeight;