another try at fixing gtk dialog placement

original commit: 647ce060ab1abe89eb22d0f974b93d619d2fc612
This commit is contained in:
Matthew Flatt 2010-08-16 08:54:34 -06:00
parent a4305ae6a2
commit e2687511b3
4 changed files with 10 additions and 9 deletions

View File

@ -57,10 +57,7 @@
(super direct-show on?))
(define/override (center dir wrt)
;; We're supposed to use gtk_window_set_position() for dialogs,
;; but we must be doing something else wrong so that it doesn't
;; work.
(if #f ; (eq? dir 'both)
(if (eq? dir 'both)
(gtk_window_set_position (get-gtk)
(if (get-parent)
GTK_WIN_POS_CENTER_ON_PARENT

View File

@ -180,6 +180,8 @@
(define/override (get-dialog-level) 0)
(define/public (frame-relative-dialog-status win) #f)
(define/override (get-unset-pos) -11111)
(define/override (center dir wrt)
(let ([w-box (box 0)]
[h-box (box 0)]

View File

@ -287,11 +287,13 @@
[extra-gtks extra-gtks]
[parent parent])
(define save-x 0)
(define save-y 0)
(define save-x (get-unset-pos))
(define save-y (get-unset-pos))
(define save-w 0)
(define save-h 0)
(define/public (get-unset-pos) 0)
(connect-size-allocate gtk)
(when add-to-parent?
@ -399,8 +401,8 @@
(unless no-show? (show #t))
(define/public (get-x) save-x)
(define/public (get-y) save-y)
(define/public (get-x) (if (= save-x -11111) 0 save-x))
(define/public (get-y) (if (= save-y -11111) 0 save-y))
(define/public (get-width) save-w)
(define/public (get-height) save-h)

View File

@ -345,7 +345,7 @@
(set! last-height correct-h)
(set! already-trying? #t)
(enforce-size -1 -1 -1 -1 1 1)
(set-size -1 -1 correct-w correct-h)
(set-size -11111 -11111 correct-w correct-h)
(enforce-size min-w min-h
(if sx? -1 min-w) (if sy? -1 min-h)
1 1)