@@ -2338,13 +2338,9 @@ nemo_window_split_view_on (NemoWindow *window)
23382338 NemoWindowSlot * slot , * old_active_slot ;
23392339 GFile * location ;
23402340
2341- /* Disable preview pane if it's showing */
2342- if (nemo_window_preview_pane_showing (window )) {
2343- nemo_window_preview_pane_off (window );
2344- }
2345-
23462341 old_active_slot = nemo_window_get_active_slot (window );
23472342 slot = create_extra_pane (window );
2343+ gtk_widget_show_all (GTK_WIDGET (slot ));
23482344
23492345 location = window -> details -> secondary_pane_last_location ;
23502346
@@ -2386,8 +2382,6 @@ nemo_window_split_view_off (NemoWindow *window)
23862382 }
23872383 }
23882384
2389- /* Reset split view pane's position so the position can be
2390- * caught again later */
23912385 g_object_set (G_OBJECT (window -> details -> split_view_hpane ),
23922386 "position" , 0 ,
23932387 "position-set" , FALSE,
@@ -2396,8 +2390,6 @@ nemo_window_split_view_off (NemoWindow *window)
23962390 nemo_window_set_active_pane (window , active_pane );
23972391 nemo_navigation_state_set_master (window -> details -> nav_state ,
23982392 active_pane -> action_group );
2399-
2400- nemo_window_update_show_hide_ui_elements (window );
24012393}
24022394
24032395gboolean
@@ -2409,125 +2401,107 @@ nemo_window_split_view_showing (NemoWindow *window)
24092401void
24102402nemo_window_preview_pane_on (NemoWindow * window )
24112403{
2412- NemoWindowSlot * slot ;
2413- GList * selection ;
2414- NemoFile * file = NULL ;
2404+ NemoWindowSlot * slot ;
2405+ GList * selection ;
2406+ NemoFile * file = NULL ;
24152407
2416- /* Disable split view if it's showing */
2417- if (nemo_window_split_view_showing (window )) {
2418- nemo_window_split_view_off (window );
2419- }
2408+ window -> details -> preview_pane_width_set = FALSE;
2409+ window -> details -> preview_pane = nemo_preview_pane_new (window );
24202410
2421- /* Reset flag so position can be set */
2422- window -> details -> preview_pane_width_set = FALSE;
2411+ gtk_paned_pack2 (GTK_PANED (window -> details -> split_view_hpane ),
2412+ window -> details -> preview_pane ,
2413+ TRUE, FALSE);
24232414
2424- /* Create preview pane */
2425- window -> details -> preview_pane = nemo_preview_pane_new (window );
2415+ gtk_widget_show (window -> details -> preview_pane );
24262416
2427- /* Pack into split view paned */
2428- gtk_paned_pack2 (GTK_PANED (window -> details -> split_view_hpane ),
2429- window -> details -> preview_pane ,
2430- TRUE, FALSE);
2417+ if (gtk_widget_get_realized (window -> details -> split_view_hpane )) {
2418+ set_preview_pane_width_from_settings (window );
2419+ } else {
2420+ g_signal_connect (window -> details -> split_view_hpane , "realize" ,
2421+ G_CALLBACK (preview_pane_realize_callback ),
2422+ window );
2423+ }
24312424
2432- gtk_widget_show (window -> details -> preview_pane );
2425+ g_signal_connect (window -> details -> split_view_hpane , "notify::position" ,
2426+ G_CALLBACK (preview_pane_position_changed_callback ),
2427+ window );
24332428
2434- /* Set position from settings - check if paned is already realized */
2435- if (gtk_widget_get_realized (window -> details -> split_view_hpane )) {
2436- /* Already realized, set position immediately */
2437- set_preview_pane_width_from_settings (window );
2438- } else {
2439- /* Not realized yet, wait for realize signal */
2440- g_signal_connect (window -> details -> split_view_hpane , "realize" ,
2441- G_CALLBACK (preview_pane_realize_callback ),
2442- window );
2443- }
2444-
2445- /* Connect signal to save position on resize */
2446- g_signal_connect (window -> details -> split_view_hpane , "notify::position" ,
2447- G_CALLBACK (preview_pane_position_changed_callback ),
2448- window );
2429+ slot = nemo_window_get_active_slot (window );
2430+ if (slot != NULL && slot -> content_view != NULL ) {
2431+ selection = nemo_view_get_selection (slot -> content_view );
2432+ if (selection != NULL && selection -> data != NULL ) {
2433+ file = NEMO_FILE (selection -> data );
2434+ }
2435+ nemo_preview_pane_set_file (NEMO_PREVIEW_PANE (window -> details -> preview_pane ), file );
2436+ nemo_file_list_free (selection );
24492437
2450- /* Get current selection and update preview */
2451- slot = nemo_window_get_active_slot (window );
2452- if (slot != NULL && slot -> content_view != NULL ) {
2453- selection = nemo_view_get_selection (slot -> content_view );
2454- if (selection != NULL && selection -> data != NULL ) {
2455- file = NEMO_FILE (selection -> data );
2456- }
2457- nemo_preview_pane_set_file (NEMO_PREVIEW_PANE (window -> details -> preview_pane ), file );
2458- nemo_file_list_free (selection );
2438+ g_signal_connect_object (slot -> content_view , "selection-changed" ,
2439+ G_CALLBACK (preview_pane_selection_changed_callback ),
2440+ window , 0 );
2441+ }
24592442
2460- /* Connect selection-changed signal for the current view */
2461- /* This will be reconnected automatically when view changes via nemo_window_connect_content_view() */
2462- g_signal_connect_object (slot -> content_view , "selection-changed" ,
2463- G_CALLBACK (preview_pane_selection_changed_callback ),
2464- window , 0 );
2465- }
2443+ window -> details -> show_preview_pane = TRUE;
24662444
2467- window -> details -> show_preview_pane = TRUE;
2468- nemo_window_update_show_hide_ui_elements ( window ) ;
2445+ if ( slot != NULL && slot -> content_view != NULL ) {
2446+ NemoFile * directory_file ;
24692447
2470- /* Save preview pane state to directory metadata */
2471- if (slot != NULL && slot -> content_view != NULL ) {
2472- NemoFile * directory_file ;
2448+ directory_file = nemo_view_get_directory_as_file (slot -> content_view );
2449+ if (directory_file != NULL ) {
2450+ nemo_file_set_boolean_metadata (directory_file ,
2451+ NEMO_METADATA_KEY_WINDOW_SHOW_PREVIEW_PANE ,
2452+ FALSE,
2453+ TRUE);
2454+ }
2455+ }
24732456
2474- directory_file = nemo_view_get_directory_as_file (slot -> content_view );
2475- if (directory_file != NULL ) {
2476- nemo_file_set_boolean_metadata (directory_file ,
2477- NEMO_METADATA_KEY_WINDOW_SHOW_PREVIEW_PANE ,
2478- FALSE,
2479- TRUE);
2480- }
2481- }
2457+ // nemo_window_update_show_hide_ui_elements (window);
24822458}
24832459
24842460void
24852461nemo_window_preview_pane_off (NemoWindow * window )
24862462{
2487- GtkPaned * paned ;
2488- NemoWindowSlot * slot ;
2489-
2490- if (window -> details -> preview_pane == NULL ) {
2491- return ;
2492- }
2463+ GtkPaned * paned ;
2464+ NemoWindowSlot * slot ;
24932465
2494- /* Disconnect signals */
2495- g_signal_handlers_disconnect_by_func (window -> details -> split_view_hpane ,
2496- G_CALLBACK (preview_pane_realize_callback ),
2497- window );
2498- g_signal_handlers_disconnect_by_func (window -> details -> split_view_hpane ,
2499- G_CALLBACK (preview_pane_position_changed_callback ),
2500- window );
2466+ if (window -> details -> preview_pane == NULL ) {
2467+ return ;
2468+ }
25012469
2502- paned = GTK_PANED (window -> details -> split_view_hpane );
2470+ /* Disconnect signals */
2471+ g_signal_handlers_disconnect_by_func (window -> details -> split_view_hpane ,
2472+ G_CALLBACK (preview_pane_realize_callback ),
2473+ window );
2474+ g_signal_handlers_disconnect_by_func (window -> details -> split_view_hpane ,
2475+ G_CALLBACK (preview_pane_position_changed_callback ),
2476+ window );
25032477
2504- /* Remove from paned */
2505- gtk_container_remove (GTK_CONTAINER (paned ), window -> details -> preview_pane );
2478+ paned = GTK_PANED (window -> details -> split_view_hpane );
25062479
2507- /* Reset paned position */
2508- g_object_set (G_OBJECT (paned ),
2509- "position" , 0 ,
2510- "position-set" , FALSE,
2511- NULL );
2480+ /* Remove from paned */
2481+ gtk_container_remove (GTK_CONTAINER (paned ), window -> details -> preview_pane );
25122482
2513- window -> details -> preview_pane = NULL ;
2514- window -> details -> show_preview_pane = FALSE;
2483+ /* Reset paned position */
2484+ g_object_set (G_OBJECT (paned ),
2485+ "position" , 200 ,
2486+ "position-set" , FALSE,
2487+ NULL );
25152488
2516- nemo_window_update_show_hide_ui_elements (window );
2489+ window -> details -> preview_pane = NULL ;
2490+ window -> details -> show_preview_pane = FALSE;
25172491
2518- /* Save preview pane state to directory metadata */
2519- slot = nemo_window_get_active_slot (window );
2520- if (slot != NULL && slot -> content_view != NULL ) {
2521- NemoFile * directory_file ;
2522-
2523- directory_file = nemo_view_get_directory_as_file (slot -> content_view );
2524- if (directory_file != NULL ) {
2525- nemo_file_set_boolean_metadata (directory_file ,
2526- NEMO_METADATA_KEY_WINDOW_SHOW_PREVIEW_PANE ,
2527- FALSE,
2528- FALSE);
2529- }
2530- }
2492+ /* Save preview pane state to directory metadata */
2493+ slot = nemo_window_get_active_slot (window );
2494+ if (slot != NULL && slot -> content_view != NULL ) {
2495+ NemoFile * directory_file ;
2496+
2497+ directory_file = nemo_view_get_directory_as_file (slot -> content_view );
2498+ if (directory_file != NULL ) {
2499+ nemo_file_set_boolean_metadata (directory_file ,
2500+ NEMO_METADATA_KEY_WINDOW_SHOW_PREVIEW_PANE ,
2501+ FALSE,
2502+ FALSE);
2503+ }
2504+ }
25312505}
25322506
25332507gboolean
0 commit comments