On 18.05.2017 01:43, Kostas Michalopoulos via Lazarus wrote:
I see the patch was added and Lazarus seems to work fine now, but the
check was altered a little. The current check assumes that the Control
will never be nil, but is this the case? I ask because i see in other
places in the same source code file that there are checks for that -
almost all calls to GetLCLObject either check for nil or use "if object
is something then use object" (with the "is" operator returning false
for nil, essentially making it an indirect test for nil).

This might be just an instance defensive programming, but i think it is
a good idea to bring this up.


Yes, this is clearly gtk2 bug, but maybe we can take another approach instead of getting LCL object and using "is". We should check if GdkWindow of widget is valid and then check it's state and in case it's = GDK_WINDOW_STATE_MAXIMIZED call gtk_window_unmaximize()


if GDK_IS_WINDOW(PGtkWindow(OurWidget)^.window) and (gdk_window_get_state(PGtkWindow(OurWidget)^.window) = GDK_WINDOW_STATE_MAXIMIZED) then
  gtk_window_unmaximize() ...
Same for unfullscreen and other "un" routines which we use inside that procedure.

What other devels think about this ? Should I correct that patch in this way and fix future problems with eg gtk_window_unfullscreen() which isn't covered by this patch atm ?

zeljko






--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
http://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to