GTK+ 3: fix problem with sizing initially unshown items
This repair is especially aimed at avoiding missing toolbar buttons in DrRacket.
This commit is contained in:
parent
c700e32c17
commit
6b2f4a72ae
|
@ -237,6 +237,8 @@
|
|||
|
||||
(define/override (set-child-size child-gtk x y w h)
|
||||
(gtk_fixed_move panel-gtk child-gtk (->screen x) (->screen y))
|
||||
;; gtk3: we expect a panel in a frame to be always visible, so
|
||||
;; this size erquest should work
|
||||
(gtk_widget_set_size_request child-gtk (->screen w) (->screen h)))
|
||||
|
||||
(define/public (on-close) #t)
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
(define-gtk gtk_event_box_set_visible_window (_fun _GtkWidget _gboolean -> _void))
|
||||
|
||||
(define-gtk gtk_fixed_move (_fun _GtkWidget _GtkWidget _int _int -> _void))
|
||||
(define-gtk gtk_widget_get_visible (_fun _GtkWidget -> _gboolean))
|
||||
|
||||
(define-gtk gtk_container_set_border_width (_fun _GtkWidget _int -> _void))
|
||||
|
||||
|
@ -137,7 +138,15 @@
|
|||
(super-new)
|
||||
(define/override (set-child-size child-gtk x y w h)
|
||||
(gtk_fixed_move (get-container-gtk) child-gtk (->screen x) (->screen y))
|
||||
(gtk_widget_set_size_request child-gtk (->screen w) (->screen h)))))
|
||||
(define re-hide?
|
||||
(and gtk3?
|
||||
(not (gtk_widget_get_visible child-gtk))
|
||||
(begin
|
||||
(gtk_widget_show child-gtk)
|
||||
#t)))
|
||||
(gtk_widget_set_size_request child-gtk (->screen w) (->screen h))
|
||||
(when re-hide?
|
||||
(gtk_widget_hide child-gtk)))))
|
||||
|
||||
(define panel%
|
||||
(class (panel-container-mixin (panel-mixin window%))
|
||||
|
|
|
@ -614,7 +614,7 @@
|
|||
(set! client-delta-h (->normal
|
||||
(- (GtkRequisition-height req)
|
||||
(GtkRequisition-height creq)))))
|
||||
(when gtk3? (gtk_widget_show gtk))))
|
||||
(when gtk3? (gtk_widget_hide gtk))))
|
||||
|
||||
(define/public (set-auto-size [dw 0] [dh 0])
|
||||
(let ([req (make-GtkRequisition 0 0)])
|
||||
|
@ -633,7 +633,7 @@
|
|||
(define/public (direct-show on?)
|
||||
;; atomic mode
|
||||
(if on?
|
||||
(gtk_widget_show gtk)
|
||||
(gtk_widget_show gtk)
|
||||
(gtk_widget_hide gtk))
|
||||
(set! shown? (and on? #t))
|
||||
(register-child-in-parent on?)
|
||||
|
|
Loading…
Reference in New Issue
Block a user