Skip to content

Commit 3ee18eb

Browse files
committed
fix some stuff - broke more..
1 parent c040bea commit 3ee18eb

2 files changed

Lines changed: 114 additions & 116 deletions

File tree

src/nemo-window-menus.c

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -648,6 +648,9 @@ action_split_view_callback (GtkAction *action,
648648
NemoWindowSlot *slot;
649649

650650
if (is_active) {
651+
if (nemo_window_preview_pane_showing (window)) {
652+
nemo_window_preview_pane_off (window);
653+
}
651654
nemo_window_split_view_on (window);
652655
} else {
653656
nemo_window_split_view_off (window);
@@ -658,6 +661,7 @@ action_split_view_callback (GtkAction *action,
658661
nemo_view_update_menus (slot->content_view);
659662
}
660663
}
664+
nemo_window_update_show_hide_ui_elements (window);
661665
}
662666

663667
static void
@@ -678,6 +682,9 @@ action_preview_pane_callback (GtkAction *action,
678682
NemoWindowSlot *slot;
679683

680684
if (is_active) {
685+
if (nemo_window_split_view_showing (window)) {
686+
nemo_window_split_view_off (window);
687+
}
681688
nemo_window_preview_pane_on (window);
682689
} else {
683690
nemo_window_preview_pane_off (window);
@@ -688,7 +695,6 @@ action_preview_pane_callback (GtkAction *action,
688695
nemo_view_update_menus (slot->content_view);
689696
}
690697
}
691-
692698
nemo_window_update_show_hide_ui_elements (window);
693699
}
694700

@@ -814,18 +820,33 @@ nemo_window_update_show_hide_ui_elements (NemoWindow *window)
814820
NemoWindowPane *pane;
815821
GtkActionGroup *action_group;
816822
GtkAction *action;
823+
gboolean active, split_view_showing, preview_showing;
817824

825+
split_view_showing = nemo_window_split_view_showing (window);
826+
preview_showing = nemo_window_preview_pane_showing (window);
818827
action_group = nemo_window_get_main_action_group (window);
819828

820829
action = gtk_action_group_get_action (action_group,
821830
NEMO_ACTION_SHOW_HIDE_EXTRA_PANE);
822-
gtk_action_block_activate (action);
823-
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
824-
nemo_window_split_view_showing (window));
825-
gtk_action_unblock_activate (action);
831+
active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
826832

827-
nemo_window_update_split_view_actions_sensitivity (window);
833+
if (active != split_view_showing) {
834+
gtk_action_block_activate (action);
835+
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), split_view_showing);
836+
gtk_action_unblock_activate (action);
837+
}
828838

839+
action = gtk_action_group_get_action (action_group,
840+
NEMO_ACTION_SHOW_HIDE_PREVIEW_PANE);
841+
active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
842+
843+
if (active != preview_showing) {
844+
gtk_action_block_activate (action);
845+
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), preview_showing);
846+
gtk_action_unblock_activate (action);
847+
}
848+
849+
nemo_window_update_split_view_actions_sensitivity (window);
829850
update_side_bar_radio_buttons (window);
830851

831852
pane = nemo_window_get_active_pane (window);
@@ -834,10 +855,13 @@ nemo_window_update_show_hide_ui_elements (NemoWindow *window)
834855

835856
action = gtk_action_group_get_action (action_group,
836857
NEMO_ACTION_SHOW_HIDE_EXTRA_PANE);
837-
gtk_action_block_activate (action);
838-
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
839-
nemo_window_split_view_showing (window));
840-
gtk_action_unblock_activate (action);
858+
active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
859+
860+
if (active != split_view_showing) {
861+
gtk_action_block_activate (action);
862+
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), split_view_showing);
863+
gtk_action_unblock_activate (action);
864+
}
841865
}
842866
}
843867

@@ -1966,7 +1990,7 @@ nemo_window_initialize_menus (NemoWindow *window)
19661990
gtk_action_set_visible (action_to_hide, eel_vfs_supports_uri_scheme ("trash"));
19671991
action_to_hide = gtk_action_group_get_action (action_group, "Go to Network");
19681992
gtk_action_set_visible (action_to_hide, eel_vfs_supports_uri_scheme ("network"));
1969-
1993+
g_printerr ("FUCKKKKKK\n");
19701994
gtk_action_group_add_toggle_actions (action_group,
19711995
main_toggle_entries, G_N_ELEMENTS (main_toggle_entries),
19721996
window);

src/nemo-window.c

Lines changed: 79 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -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

24032395
gboolean
@@ -2409,125 +2401,107 @@ nemo_window_split_view_showing (NemoWindow *window)
24092401
void
24102402
nemo_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

24842460
void
24852461
nemo_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

25332507
gboolean

0 commit comments

Comments
 (0)