diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2011-05-21 10:05:19 +0000 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2011-05-21 10:05:19 +0000 |
| commit | fce1e80ee33ca39232408b7fb7a43f6b4e4387b3 (patch) | |
| tree | 457cfef9f7bcdd9e9f1e82ff7b73269328e56761 | |
| parent | b87a0b73907b0d26bae5b7414f74e217706a70d8 (diff) | |
Fix potential crash in fl_xid() on Linux (STR #2635). This would
crash if called when a window is not shown().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8706 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | CHANGES | 1 | ||||
| -rw-r--r-- | FL/x.H | 2 | ||||
| -rw-r--r-- | src/Fl_x.cxx | 7 |
3 files changed, 5 insertions, 5 deletions
@@ -146,6 +146,7 @@ CHANGES IN FLTK 1.3.0 Bug Fixes + - Fixed potential crash in fl_xid() on Linux (STR #2635) - Fixed keyboard navigation in fl_choice() (STR #2591) - Fixed alpha blending under X11 when line data size != 0 (STR #2606) - Fixed Fl_Tabs selection border drawing, if tabs are at the bottom @@ -174,7 +174,7 @@ public: extern FL_EXPORT char fl_override_redirect; // hack into Fl_X::make_xid() extern FL_EXPORT int fl_background_pixel; // hack into Fl_X::make_xid() -inline Window fl_xid(const Fl_Window* w) { return Fl_X::i(w)->xid; } +inline Window fl_xid(const Fl_Window* w) { Fl_X *temp = Fl_X::i(w); return temp ? temp->xid : 0; } #else diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index 913c7200d..95aff3d3e 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -1902,12 +1902,11 @@ void Fl_Window::make_current() { #endif } -Window fl_xid_(const Fl_Window* w) -{ - return Fl_X::i(w)->xid; +Window fl_xid_(const Fl_Window *w) { + Fl_X *temp = Fl_X::i(w); + return temp ? temp->xid : 0; } - int Fl_Window::decorated_h() { if (parent() || !shown()) return h(); |
