Undo gmainloop related changes
Revert "Merge pull request #1943 from H3rnand3zzz/gmainloop This reverts commit609fde0998, reversing changes made to2ec94064ed. Revert "Merge pull request #1948 from H3rnand3zzz/fix/rl-less-refreshes" This reverts commit11762fd2b0, reversing changes made to609fde0998. We have got several issues, that we don't quite see how to solve, with the merge of the gmainloop PR. * Slashguard is broken (#1955) (though #1956 could fix that) * One person reported problems with copy paste selection via mouse * Some input buffer seems not to be cleared correctly It happened that I was debugging profanity used `/connect` and typed the password. I then debugged so long that a time out occurred, so profanity disconnected. Then it printed "unknown command: $password". There was something else that I forgot now. Bottomline is: so far we didn't get it right so we will undo these changes until someone proposes a working solution. We got a slight performance increase (apparently noticable when alt+mouse scrolling) but got too many issues with this change.
This commit is contained in:
@@ -43,7 +43,6 @@
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
@@ -61,7 +60,6 @@
|
||||
#include "command/cmd_defs.h"
|
||||
#include "plugins/plugins.h"
|
||||
#include "event/client_events.h"
|
||||
#include "ui/inputwin.h"
|
||||
#include "ui/ui.h"
|
||||
#include "ui/window_list.h"
|
||||
#include "xmpp/resource.h"
|
||||
@@ -88,15 +86,15 @@
|
||||
static void _init(char* log_level, char* config_file, char* log_file, char* theme_name);
|
||||
static void _shutdown(void);
|
||||
static void _connect_default(const char* const account);
|
||||
static gboolean _main_update(gpointer data);
|
||||
|
||||
pthread_mutex_t lock;
|
||||
static gboolean force_quit = FALSE;
|
||||
GMainLoop* mainloop = NULL;
|
||||
|
||||
void
|
||||
prof_run(char* log_level, char* account_name, char* config_file, char* log_file, char* theme_name)
|
||||
{
|
||||
gboolean cont = TRUE;
|
||||
|
||||
_init(log_level, config_file, log_file, theme_name);
|
||||
plugins_on_start();
|
||||
_connect_default(account_name);
|
||||
@@ -107,10 +105,33 @@ prof_run(char* log_level, char* account_name, char* config_file, char* log_file,
|
||||
|
||||
session_init_activity();
|
||||
|
||||
mainloop = g_main_loop_new(NULL, TRUE);
|
||||
g_timeout_add(1000 / 60, _main_update, NULL);
|
||||
inp_add_watch();
|
||||
g_main_loop_run(mainloop);
|
||||
char* line = NULL;
|
||||
while (cont && !force_quit) {
|
||||
log_stderr_handler();
|
||||
session_check_autoaway();
|
||||
|
||||
line = inp_readline();
|
||||
if (line) {
|
||||
ProfWin* window = wins_get_current();
|
||||
cont = cmd_process_input(window, line);
|
||||
free(line);
|
||||
line = NULL;
|
||||
} else {
|
||||
cont = TRUE;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBOTR
|
||||
otr_poll();
|
||||
#endif
|
||||
plugins_run_timed();
|
||||
notify_remind();
|
||||
session_process_events();
|
||||
iq_autoping_check();
|
||||
ui_update();
|
||||
#ifdef HAVE_GTK
|
||||
tray_update();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
@@ -119,29 +140,6 @@ prof_set_quit(void)
|
||||
force_quit = TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_main_update(gpointer data)
|
||||
{
|
||||
log_stderr_handler();
|
||||
session_check_autoaway();
|
||||
|
||||
#ifdef HAVE_LIBOTR
|
||||
otr_poll();
|
||||
#endif
|
||||
plugins_run_timed();
|
||||
notify_remind();
|
||||
session_process_events();
|
||||
iq_autoping_check();
|
||||
ui_update();
|
||||
chat_state_idle();
|
||||
#ifdef HAVE_GTK
|
||||
tray_update();
|
||||
#endif
|
||||
|
||||
// Always repeat
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_connect_default(const char* const account)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user