Ticket #399: final-window-sizes-position.patch

File final-window-sizes-position.patch, 3.3 KB (added by kwixbit, 14 years ago)
  • gtk/util.c

     
    284284    gtk_scrolled_window_set_policy( scroll, GTK_POLICY_NEVER,
    285285                                            GTK_POLICY_NEVER );
    286286
     287    /* restore window sizes and position */
     288    gint mainWindowHeight;
     289    gint mainWindowWidth;
     290   
     291    gint mainWindowX;
     292    gint mainWindowY;
     293
     294    mainWindowHeight = pref_int_get( PREF_KEY_MAIN_WINDOW_HEIGHT );
     295    mainWindowWidth = pref_int_get( PREF_KEY_MAIN_WINDOW_WIDTH );
     296
     297    mainWindowX = pref_int_get( PREF_KEY_MAIN_WINDOW_X );
     298    mainWindowY = pref_int_get( PREF_KEY_MAIN_WINDOW_Y );
     299
    287300    gtk_widget_size_request( GTK_WIDGET( wind ), &req );
    288301    req.height = MAX( req.height, 300 );
    289302    height = MIN( req.height, gdk_screen_get_height( screen ) / 5 * 4 );
     
    293306    req.width = MAX( req.width, 500 );
    294307    width = MIN( req.width, gdk_screen_get_width( screen ) / 2 );
    295308
    296     gtk_window_set_default_size( wind, width, height );
     309    gtk_window_set_default_size( wind, mainWindowHeight, mainWindowWidth );
     310    gtk_window_move( wind, mainWindowX, mainWindowY );
    297311    gtk_scrolled_window_set_policy( scroll, hscroll, vscroll );
    298312}
    299313
  • gtk/tr-prefs.c

     
    8585    pref_flag_set_default   ( PREF_KEY_START, TRUE );
    8686    pref_flag_set_default   ( PREF_KEY_TRASH_ORIGINAL, FALSE );
    8787
     88    pref_string_set_default ( PREF_KEY_MAIN_WINDOW_HEIGHT, "300" );
     89    pref_string_set_default ( PREF_KEY_MAIN_WINDOW_WIDTH, "500" );
     90
     91    pref_string_set_default ( PREF_KEY_MAIN_WINDOW_X, "0" );
     92    pref_string_set_default ( PREF_KEY_MAIN_WINDOW_Y, "0" );
     93
    8894    pref_save( NULL );
    8995}
    9096
  • gtk/tr-prefs.h

     
    4949#define PREF_KEY_MAX_PEERS_GLOBAL       "max-peers-global"
    5050#define PREF_KEY_MAX_PEERS_PER_TORRENT  "max-peers-per-torrent"
    5151#define PREF_KEY_BLOCKLIST_ENABLED      "blocklist-enabled"
     52#define PREF_KEY_MAIN_WINDOW_HEIGHT     "main-window-height"
     53#define PREF_KEY_MAIN_WINDOW_WIDTH      "main-window-width"
     54#define PREF_KEY_MAIN_WINDOW_X          "main-window-x"
     55#define PREF_KEY_MAIN_WINDOW_Y          "main-window-y"
    5256
    53 
    5457void tr_prefs_init_global( void );
    5558
    5659#endif
  • gtk/main.c

     
    656656
    657657    gtk_widget_show_all(r);
    658658
     659    /* get and save window sizes and position */
     660    gint mainWindowHeight;
     661    gint mainWindowWidth;
     662    gint mainWindowX;
     663    gint mainWindowY;
     664
     665    gtk_window_get_size( GTK_WINDOW( c ), &mainWindowHeight, &mainWindowWidth );
     666    gtk_window_get_position( GTK_WINDOW( c ), &mainWindowX, &mainWindowY );
     667
     668    pref_int_set( PREF_KEY_MAIN_WINDOW_HEIGHT, mainWindowHeight );
     669    pref_int_set( PREF_KEY_MAIN_WINDOW_WIDTH, mainWindowWidth );
     670
     671    pref_int_set( PREF_KEY_MAIN_WINDOW_X, mainWindowX );
     672    pref_int_set( PREF_KEY_MAIN_WINDOW_Y, mainWindowY );
     673
     674    pref_save(NULL);
     675
    659676    /* clear the UI */
    660677    gtk_list_store_clear( GTK_LIST_STORE( tr_core_model( cbdata->core ) ) );
    661678