diff --git a/src/config.c b/src/config.c index e0e3b9612..0e35b3a6c 100644 --- a/src/config.c +++ b/src/config.c @@ -21,6 +21,7 @@ static char cfg_apps_menu_db[4096] = ""; static char cfg_menus_dir[4096] = ""; static char cfg_entries_dir[4096] = ""; static char cfg_selections_dir[4096] = ""; +static char cfg_scrollbars_dir[4096] = ""; static char cfg_user_dir[4096] = ""; static char cfg_images_dir[4096] = ""; static char cfg_backgrounds_dir[4096] = ""; @@ -60,6 +61,8 @@ e_config_get(char *type) PACKAGE_DATA_DIR"/data/config/appearance/default/entries/"); E_CONF("selections", cfg_selections_dir, PACKAGE_DATA_DIR"/data/config/appearance/default/selections/"); + E_CONF("scrollbars", cfg_scrollbars_dir, + PACKAGE_DATA_DIR"/data/config/appearance/default/scrollbars/"); E_CONF("images", cfg_images_dir, PACKAGE_DATA_DIR"/data/images/"); E_CONF("backgrounds", cfg_backgrounds_dir, @@ -120,6 +123,8 @@ e_config_set_user_dir(char *dir) cfg_apps_menu_db[0]= 0; cfg_menus_dir[0] = 0; cfg_entries_dir[0] = 0; + cfg_selections_dir[0] = 0; + cfg_scrollbars_dir[0] = 0; cfg_user_dir[0] = 0; cfg_images_dir[0] = 0; cfg_backgrounds_dir[0] = 0; diff --git a/src/fs.c b/src/fs.c index 1030f858f..8cbb3a2a6 100644 --- a/src/fs.c +++ b/src/fs.c @@ -16,12 +16,14 @@ e_fs_child_handle(Eevent *ev) Ev_Child *e; e = ev->event; + printf("pid went splat! (%i)\n", e->pid); if (e->pid == efsd_pid) { - efsd_close(ec); - efsd_pid = 0; + printf("it was efsd!\n"); + if (ec) efsd_close(ec); ec = NULL; - _e_fs_restarter(0, NULL); + efsd_pid = 0; + _e_fs_restarter(1, NULL); } } @@ -53,8 +55,7 @@ _e_fs_fd_handle(int fd) efsd_close(ec); e_del_event_fd(fd); ec = NULL; - if (efsd_pid == -2) - _e_fs_restarter(0, NULL); + _e_fs_restarter(0, NULL); /* FIXME: need to queue a popup dialog here saying */ /* efsd went wonky */ printf("EEEEEEEEEEK efsd went wonky. Bye bye efsd.\n"); @@ -67,7 +68,7 @@ _e_fs_fd_handle(int fd) printf("fs... too much time spent..\n"); break; } - } + } } static void @@ -75,9 +76,14 @@ _e_fs_restarter(int val, void *data) { if (ec) return; ec = efsd_open(); + printf("restart efsd...\n"); if ((!ec) && (val > 0)) { - if (efsd_pid <= 0) efsd_pid = e_exec_run("efsd -f"); + if (efsd_pid <= 0) + { + efsd_pid = e_exec_run("efsd -f"); + printf("launch efsd... %i\n", efsd_pid); + } if (efsd_pid > 0) ec = efsd_open(); } if (ec) diff --git a/src/scrollbar.c b/src/scrollbar.c index 7f83be1cd..282aaf49c 100644 --- a/src/scrollbar.c +++ b/src/scrollbar.c @@ -1,4 +1,5 @@ #include "scrollbar.h" +#include "config.h" static void e_scrollbar_recalc(E_Scrollbar *sb); static void e_scrollbar_setup_bits(E_Scrollbar *sb); @@ -6,15 +7,28 @@ static void e_scrollbar_setup_bits(E_Scrollbar *sb); static void e_scrollbar_recalc(E_Scrollbar *sb) { - sb = NULL; + UN(sb); } static void e_scrollbar_setup_bits(E_Scrollbar *sb) { -/* sb->base = ebits_load("");*/ -/* sb->bar = ebits_load("");*/ - sb = NULL; + char buf[4096]; + + if (sb->direction == 1) + { + sprintf(buf, "%s/scroll_base_v.bits.db", e_config_get("scrollbars")); + sb->base = ebits_load(buf); + sprintf(buf, "%s/scroll_bar_v.bits.db", e_config_get("scrollbars")); + sb->bar = ebits_load(buf); + } + else + { + sprintf(buf, "%s/scroll_base_h.bits.db", e_config_get("scrollbars")); + sb->base = ebits_load(buf); + sprintf(buf, "%s/scroll_bar_h.bits.db", e_config_get("scrollbars")); + sb->bar = ebits_load(buf); + } } E_Scrollbar * diff --git a/src/view.c b/src/view.c index fc1180bba..481d4eba5 100644 --- a/src/view.c +++ b/src/view.c @@ -1488,12 +1488,26 @@ e_view_handle_fs_restart(void *data) evas_list_free(icons); } if (e_fs_get_connection()) - v->monitor_id = efsd_start_monitor(e_fs_get_connection(), v->dir, - efsd_ops(2, - efsd_op_get_stat(), - efsd_op_get_filetype() - ), - TRUE); + { + if (v->geom_get.busy) + { + v->geom_get.x = efsd_get_metadata(e_fs_get_connection(), + "/view/x", v->dir, EFSD_INT); + v->geom_get.y = efsd_get_metadata(e_fs_get_connection(), + "/view/y", v->dir, EFSD_INT); + v->geom_get.w = efsd_get_metadata(e_fs_get_connection(), + "/view/w", v->dir, EFSD_INT); + v->geom_get.h = efsd_get_metadata(e_fs_get_connection(), + "/view/h", v->dir, EFSD_INT); + } + v->monitor_id = efsd_start_monitor(e_fs_get_connection(), v->dir, + efsd_ops(2, + efsd_op_get_stat(), + efsd_op_get_filetype() + ), + TRUE); + v->is_listing = 1; + } printf("restarted monitor id (connection = %p), %i for %s\n", e_fs_get_connection(), v->monitor_id, v->dir); v->is_listing = 1; }