mirror of
https://github.com/davatorium/rofi.git
synced 2025-04-21 17:52:51 -04:00
[CodeChecker] More cleanup with remarks from gcc/clang static code analysis
This commit is contained in:
parent
542846c0f9
commit
0bad6ddb99
14 changed files with 141 additions and 81 deletions
|
@ -331,7 +331,8 @@ gboolean helper_execute(const char *wd, char **args, const char *error_precmd,
|
|||
*/
|
||||
gboolean helper_execute_command(const char *wd, const char *cmd,
|
||||
gboolean run_in_term,
|
||||
RofiHelperExecuteContext *context);
|
||||
RofiHelperExecuteContext *context)
|
||||
__attribute__((nonnull(2)));
|
||||
|
||||
/**
|
||||
* @param file The file path
|
||||
|
|
|
@ -61,7 +61,7 @@ typedef struct {
|
|||
|
||||
/** Whether to load and show icons */
|
||||
gboolean show_icons;
|
||||
|
||||
|
||||
/** Custom command to generate preview icons */
|
||||
char *preview_cmd;
|
||||
|
||||
|
@ -211,7 +211,7 @@ typedef struct {
|
|||
/** Default number of columns in the list view */
|
||||
#define DEFAULT_MENU_COLUMNS 1
|
||||
/** Default window width */
|
||||
#define DEFAULT_MENU_WIDTH 50.0f
|
||||
#define DEFAULT_MENU_WIDTH 50.0
|
||||
|
||||
/** Global Settings structure. */
|
||||
extern Settings config;
|
||||
|
|
|
@ -237,7 +237,7 @@ cairo_surface_t *x11_helper_get_screenshot_surface_window(xcb_window_t window,
|
|||
*
|
||||
* Blur the content of the surface with radius and deviation.
|
||||
*/
|
||||
void cairo_image_surface_blur(cairo_surface_t *surface, double radius,
|
||||
void cairo_image_surface_blur(cairo_surface_t *surface, int radius,
|
||||
double deviation);
|
||||
|
||||
#ifdef XCB_IMDKIT
|
||||
|
|
|
@ -275,6 +275,7 @@ static rofi_int_matcher *create_regex(const char *input, int case_sensitive) {
|
|||
retv = R(r, case_sensitive);
|
||||
g_free(r);
|
||||
break;
|
||||
case MM_NORMAL:
|
||||
default:
|
||||
r = g_regex_escape_string(input, -1);
|
||||
retv = R(r, case_sensitive);
|
||||
|
@ -1113,7 +1114,6 @@ gboolean helper_execute_command(const char *wd, const char *cmd,
|
|||
|
||||
static char *helper_get_theme_path_check_file(const char *filename,
|
||||
const char *parent_file) {
|
||||
|
||||
// Check if absolute path.
|
||||
if (g_path_is_absolute(filename)) {
|
||||
g_debug("Opening theme, path is absolute: %s", filename);
|
||||
|
@ -1199,7 +1199,6 @@ static char *helper_get_theme_path_check_file(const char *filename,
|
|||
|
||||
char *helper_get_theme_path(const char *file, const char **ext,
|
||||
const char *parent_file) {
|
||||
|
||||
char *filename = rofi_expand_path(file);
|
||||
g_debug("Opening theme, testing: %s\n", filename);
|
||||
if (g_path_is_absolute(filename)) {
|
||||
|
|
|
@ -62,8 +62,15 @@ int mode_init(Mode *mode) {
|
|||
}
|
||||
|
||||
void mode_destroy(Mode *mode) {
|
||||
g_assert(mode != NULL);
|
||||
g_assert(mode->_destroy != NULL);
|
||||
if (mode == NULL) {
|
||||
g_warning("Invalid mode structure.");
|
||||
return;
|
||||
}
|
||||
if (mode->_destroy == NULL) {
|
||||
g_debug("Mode '%s' has no destroy method.", mode->name);
|
||||
return;
|
||||
}
|
||||
|
||||
mode->_destroy(mode);
|
||||
}
|
||||
|
||||
|
@ -125,7 +132,8 @@ char *mode_get_completion(const Mode *mode, unsigned int selected_line) {
|
|||
}
|
||||
int state = 0;
|
||||
g_assert(mode->_get_display_value != NULL);
|
||||
char *retv = mode->_get_display_value(mode, selected_line, &state, NULL, TRUE);
|
||||
char *retv =
|
||||
mode->_get_display_value(mode, selected_line, &state, NULL, TRUE);
|
||||
return retv;
|
||||
}
|
||||
|
||||
|
@ -204,7 +212,7 @@ const char *mode_get_display_name(const Mode *mode) {
|
|||
}
|
||||
|
||||
void mode_set_config(Mode *mode) {
|
||||
if (snprintf(mode->cfg_name_key, 128, "display-%s", mode->name) > 0 ){
|
||||
if (snprintf(mode->cfg_name_key, 128, "display-%s", mode->name) > 0) {
|
||||
config_parser_add_option(xrm_String, mode->cfg_name_key,
|
||||
(void **)&(mode->display_name),
|
||||
"The display name of this browser");
|
||||
|
@ -252,10 +260,6 @@ gboolean mode_is_completer(const Mode *mode) {
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
void mode_plugin_set_module(Mode *mode, GModule *mod){
|
||||
mode->module = mod;
|
||||
}
|
||||
GModule *mode_plugin_get_module(Mode *mode){
|
||||
return mode->module;
|
||||
}
|
||||
void mode_plugin_set_module(Mode *mode, GModule *mod) { mode->module = mod; }
|
||||
GModule *mode_plugin_get_module(Mode *mode) { return mode->module; }
|
||||
/**@}*/
|
||||
|
|
|
@ -955,20 +955,20 @@ static gint drun_int_sort_list(gconstpointer a, gconstpointer b,
|
|||
#define CACHE_VERSION 3
|
||||
static int drun_write_str(FILE *fd, const char *str) {
|
||||
size_t l = (str == NULL ? 0 : strlen(str));
|
||||
if(fwrite(&l, sizeof(l), 1, fd)<=0){
|
||||
if (fwrite(&l, sizeof(l), 1, fd) <= 0) {
|
||||
return 1;
|
||||
}
|
||||
// Only write string if it is not NULL or empty.
|
||||
if (l > 0) {
|
||||
// Also writeout terminating '\0'
|
||||
if ( fwrite(str, 1, l + 1, fd) <= 0 ){
|
||||
if (fwrite(str, 1, l + 1, fd) <= 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
static int drun_write_integer(FILE *fd, int32_t val) {
|
||||
if ( fwrite(&val, sizeof(val), 1, fd) <= 0 ){
|
||||
if (fwrite(&val, sizeof(val), 1, fd) <= 0) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
@ -1001,12 +1001,12 @@ static gboolean drun_read_string(FILE *fd, char **str) {
|
|||
}
|
||||
static void drun_write_strv(FILE *fd, char **str) {
|
||||
guint vl = (str == NULL ? 0 : g_strv_length(str));
|
||||
if ( fwrite(&vl, sizeof(vl), 1, fd) <= 0 ){
|
||||
if (fwrite(&vl, sizeof(vl), 1, fd) <= 0) {
|
||||
return;
|
||||
}
|
||||
for (guint index = 0; index < vl; index++) {
|
||||
if ( drun_write_str(fd, str[index])){
|
||||
return ;
|
||||
if (drun_write_str(fd, str[index])) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1017,6 +1017,10 @@ static gboolean drun_read_stringv(FILE *fd, char ***str) {
|
|||
g_warning("Failed to read entry, cache corrupt?");
|
||||
return TRUE;
|
||||
}
|
||||
if (vl > 1024) {
|
||||
g_warning("Cache corrupted, trying to read to to many entries: %u", vl);
|
||||
return TRUE;
|
||||
}
|
||||
if (vl > 0) {
|
||||
// Include terminating NULL entry.
|
||||
(*str) = g_malloc0((vl + 1) * sizeof(**str));
|
||||
|
@ -1041,13 +1045,13 @@ static void write_cache(DRunModePrivateData *pd, const char *cache_file) {
|
|||
return;
|
||||
}
|
||||
uint8_t version = CACHE_VERSION;
|
||||
if ( fwrite(&version, sizeof(version), 1, fd) <= 0 ){
|
||||
if (fwrite(&version, sizeof(version), 1, fd) <= 0) {
|
||||
g_warning("Failed to write to drun cache file.");
|
||||
(void)(void)fclose(fd);
|
||||
return;
|
||||
}
|
||||
|
||||
if ( fwrite(&(pd->cmd_list_length), sizeof(pd->cmd_list_length), 1, fd) <= 0){
|
||||
if (fwrite(&(pd->cmd_list_length), sizeof(pd->cmd_list_length), 1, fd) <= 0) {
|
||||
g_warning("Failed to write to drun cache file.");
|
||||
(void)(void)fclose(fd);
|
||||
return;
|
||||
|
|
|
@ -202,7 +202,7 @@ static SshEntry *read_known_hosts_file(const char *path, SshEntry *retv,
|
|||
if (start[0] == '[') {
|
||||
start++;
|
||||
char *strend = strchr(start, ']');
|
||||
if (strend[1] == ':') {
|
||||
if (strend != NULL && strend[1] == ':') {
|
||||
*strend = '\0';
|
||||
errno = 0;
|
||||
gchar *endptr = NULL;
|
||||
|
@ -223,8 +223,9 @@ static SshEntry *read_known_hosts_file(const char *path, SshEntry *retv,
|
|||
// Is this host name already in the list?
|
||||
// We often get duplicates in hosts file, so lets check this.
|
||||
int found = 0;
|
||||
for (unsigned int j = 0; j < (*length); j++) {
|
||||
if (!g_ascii_strcasecmp(start, retv[j].hostname)) {
|
||||
for (unsigned int j = 0; j < (*length) && retv; j++) {
|
||||
if (retv[j].hostname != NULL &&
|
||||
!g_ascii_strcasecmp(start, retv[j].hostname)) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
|
@ -413,8 +414,9 @@ static void parse_ssh_config_file(SSHModePrivateData *pd, const char *filename,
|
|||
// This is a nice little penalty, but doable? time will tell.
|
||||
// given num_favorites is max 25.
|
||||
int found = 0;
|
||||
for (unsigned int j = 0; j < num_favorites; j++) {
|
||||
if (!g_ascii_strcasecmp(token, (*retv)[j].hostname)) {
|
||||
for (unsigned int j = 0; j < num_favorites && *retv; j++) {
|
||||
if ((*retv)[j].hostname != NULL &&
|
||||
!g_ascii_strcasecmp(token, (*retv)[j].hostname)) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
|
@ -465,29 +467,39 @@ static SshEntry *get_ssh(SSHModePrivateData *pd, unsigned int *length) {
|
|||
path = g_build_filename(cache_dir, SSH_CACHE_FILE, NULL);
|
||||
char **h = history_get_list(path, length);
|
||||
|
||||
retv = malloc((*length) * sizeof(SshEntry));
|
||||
for (unsigned int i = 0; i < (*length); i++) {
|
||||
int port = 0;
|
||||
char *portstr = strchr(h[i], '\x1F');
|
||||
if (portstr != NULL) {
|
||||
*portstr = '\0';
|
||||
errno = 0;
|
||||
gchar *endptr = NULL;
|
||||
gint64 number = g_ascii_strtoll(&(portstr[1]), &endptr, 10);
|
||||
if (errno != 0) {
|
||||
g_warning("Failed to parse port number: %s.", &(portstr[1]));
|
||||
} else if (endptr == &(portstr[1])) {
|
||||
g_warning("Failed to parse port number: %s, invalid number.",
|
||||
&(portstr[1]));
|
||||
} else if (number < 0 || number > 65535) {
|
||||
g_warning("Failed to parse port number: %s, out of range.",
|
||||
&(portstr[1]));
|
||||
} else {
|
||||
port = number;
|
||||
}
|
||||
if ((*length) > 0) {
|
||||
retv = malloc((*length) * sizeof(SshEntry));
|
||||
if (retv == NULL) {
|
||||
// This should never happen, but if it does..
|
||||
// we fail.
|
||||
*length = 0;
|
||||
g_strfreev(h);
|
||||
g_free(path);
|
||||
return NULL;
|
||||
}
|
||||
for (unsigned int i = 0; i < (*length); i++) {
|
||||
int port = 0;
|
||||
char *portstr = strchr(h[i], '\x1F');
|
||||
if (portstr != NULL) {
|
||||
*portstr = '\0';
|
||||
errno = 0;
|
||||
gchar *endptr = NULL;
|
||||
gint64 number = g_ascii_strtoll(&(portstr[1]), &endptr, 10);
|
||||
if (errno != 0) {
|
||||
g_warning("Failed to parse port number: %s.", &(portstr[1]));
|
||||
} else if (endptr == &(portstr[1])) {
|
||||
g_warning("Failed to parse port number: %s, invalid number.",
|
||||
&(portstr[1]));
|
||||
} else if (number < 0 || number > 65535) {
|
||||
g_warning("Failed to parse port number: %s, out of range.",
|
||||
&(portstr[1]));
|
||||
} else {
|
||||
port = number;
|
||||
}
|
||||
}
|
||||
retv[i].hostname = h[i];
|
||||
retv[i].port = port;
|
||||
}
|
||||
retv[i].hostname = h[i];
|
||||
retv[i].port = port;
|
||||
}
|
||||
g_free(h);
|
||||
|
||||
|
@ -646,5 +658,5 @@ Mode ssh_mode = {.name = "ssh",
|
|||
._preprocess_input = NULL,
|
||||
.private_data = NULL,
|
||||
.free = NULL,
|
||||
.type = MODE_TYPE_SWITCHER };
|
||||
.type = MODE_TYPE_SWITCHER};
|
||||
/**@}*/
|
||||
|
|
|
@ -436,6 +436,9 @@ static void int_rofi_theme_print_property(Property *p) {
|
|||
case WL_SOUTH | WL_WEST:
|
||||
(void)fputs("southwest", stdout);
|
||||
break;
|
||||
default:
|
||||
g_warning("Unknown location specified.");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1138,6 +1141,9 @@ static gboolean rofi_theme_get_image_inside(Property *p, const widget *wid,
|
|||
wid->w / 2.0 + offsetx1, wid->h / 2.0 + offsety1);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
g_warning("Unknown gradient direction specified.");
|
||||
break;
|
||||
};
|
||||
guint length = g_list_length(p->value.image.colors);
|
||||
if (length > 1) {
|
||||
|
|
|
@ -266,7 +266,8 @@ void rofi_capture_screenshot(void) {
|
|||
} else {
|
||||
fpath = g_strdup(outp);
|
||||
}
|
||||
(void)fprintf(stderr, color_green "Storing screenshot %s\n" color_reset, fpath);
|
||||
(void)fprintf(stderr, color_green "Storing screenshot %s\n" color_reset,
|
||||
fpath);
|
||||
cairo_surface_t *surf = cairo_image_surface_create(
|
||||
CAIRO_FORMAT_ARGB32, state->width, state->height);
|
||||
cairo_status_t status = cairo_surface_status(surf);
|
||||
|
@ -328,8 +329,10 @@ static gboolean bench_update(void) {
|
|||
if (fps < BenchMark.min) {
|
||||
BenchMark.min = fps;
|
||||
}
|
||||
// There never will be so many draws that it does not fit safely in a
|
||||
// doubles. or some loss of precision is an issue for printing fps.
|
||||
printf("current: %.2f fps, avg: %.2f fps, min: %.2f fps, %lu draws\r\n",
|
||||
fps, BenchMark.draws / ts, BenchMark.min, BenchMark.draws);
|
||||
fps, ((double)BenchMark.draws) / ts, BenchMark.min, BenchMark.draws);
|
||||
|
||||
BenchMark.last_ts = ts;
|
||||
}
|
||||
|
@ -849,7 +852,7 @@ rofi_view_setup_fake_transparency(widget *win,
|
|||
cairo_destroy(dr);
|
||||
cairo_surface_destroy(s);
|
||||
if (blur > 0) {
|
||||
cairo_image_surface_blur(CacheState.fake_bg, (double)blur, 0);
|
||||
cairo_image_surface_blur(CacheState.fake_bg, blur, 0);
|
||||
TICK_N("BLUR");
|
||||
}
|
||||
}
|
||||
|
@ -907,8 +910,8 @@ gboolean rofi_set_im_window_pos(int new_x, int new_y) {
|
|||
|
||||
static xcb_point_t spot = {.x = 0, .y = 0};
|
||||
if (spot.x != new_x || spot.y != new_y) {
|
||||
spot.x = new_x;
|
||||
spot.y = new_y;
|
||||
spot.x = (short)new_x;
|
||||
spot.y = (short)new_y;
|
||||
xcb_xim_nested_list nested = xcb_xim_create_nested_list(
|
||||
xcb->im, XCB_XIM_XNSpotLocation, &spot, NULL);
|
||||
xcb_xim_set_ic_values(xcb->im, xcb->ic, NULL, NULL, XCB_XIM_XNClientWindow,
|
||||
|
@ -923,10 +926,10 @@ static void open_xim_callback(xcb_xim_t *im, G_GNUC_UNUSED void *user_data) {
|
|||
RofiViewState *state = rofi_view_get_active();
|
||||
uint32_t input_style = XCB_IM_PreeditPosition | XCB_IM_StatusArea;
|
||||
xcb_point_t spot;
|
||||
spot.x = widget_get_x_pos(&state->text->widget) +
|
||||
textbox_get_cursor_x_pos(state->text);
|
||||
spot.y = widget_get_y_pos(&state->text->widget) +
|
||||
widget_get_height(&state->text->widget);
|
||||
spot.x = (short)(widget_get_x_pos(&state->text->widget) +
|
||||
textbox_get_cursor_x_pos(state->text));
|
||||
spot.y = (short)(widget_get_y_pos(&state->text->widget) +
|
||||
widget_get_height(&state->text->widget));
|
||||
xcb_xim_nested_list nested =
|
||||
xcb_xim_create_nested_list(im, XCB_XIM_XNSpotLocation, &spot, NULL);
|
||||
xcb_xim_create_ic(
|
||||
|
@ -1111,8 +1114,8 @@ void __create_window(MenuFlags menu_flags) {
|
|||
// default pango is 96.
|
||||
PangoFontMap *font_map = pango_cairo_font_map_get_default();
|
||||
// TODO should we round?
|
||||
config.dpi = (int)
|
||||
pango_cairo_font_map_get_resolution((PangoCairoFontMap *)font_map);
|
||||
config.dpi =
|
||||
(int)pango_cairo_font_map_get_resolution((PangoCairoFontMap *)font_map);
|
||||
}
|
||||
// Setup font.
|
||||
// Dummy widget.
|
||||
|
@ -1998,6 +2001,8 @@ static void rofi_view_trigger_global_action(KeyBindingAction action) {
|
|||
rofi_view_refilter(state);
|
||||
rofi_view_set_overlay_timeout(state, helper_get_matching_mode_str());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2025,9 +2030,13 @@ gboolean rofi_view_check_action(RofiViewState *state, BindingsScope scope,
|
|||
case WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_BEGIN:
|
||||
case WIDGET_TRIGGER_ACTION_RESULT_HANDLED:
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -2067,9 +2076,13 @@ void rofi_view_trigger_action(RofiViewState *state, BindingsScope scope,
|
|||
rofi_fallthrough;
|
||||
case WIDGET_TRIGGER_ACTION_RESULT_HANDLED:
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2090,6 +2103,8 @@ static X11CursorType rofi_cursor_type_to_x11_cursor_type(RofiCursorType type) {
|
|||
|
||||
case ROFI_CURSOR_TEXT:
|
||||
return CURSOR_TEXT;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return CURSOR_DEFAULT;
|
||||
|
@ -2300,6 +2315,8 @@ WidgetTriggerActionResult textbox_button_trigger_action(
|
|||
case MOUSE_DCLICK_DOWN:
|
||||
case MOUSE_DCLICK_UP:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return WIDGET_TRIGGER_ACTION_RESULT_IGNORED;
|
||||
}
|
||||
|
@ -2327,6 +2344,8 @@ static WidgetTriggerActionResult textbox_sidebar_modes_trigger_action(
|
|||
case MOUSE_DCLICK_DOWN:
|
||||
case MOUSE_DCLICK_UP:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return WIDGET_TRIGGER_ACTION_RESULT_IGNORED;
|
||||
}
|
||||
|
|
|
@ -735,6 +735,8 @@ listview_trigger_action(widget *wid, MouseBindingListviewAction action,
|
|||
case SCROLL_UP:
|
||||
listview_nav_up(lv);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return WIDGET_TRIGGER_ACTION_RESULT_HANDLED;
|
||||
}
|
||||
|
@ -763,6 +765,8 @@ static WidgetTriggerActionResult listview_element_trigger_action(
|
|||
listview_set_selected(lv, lv->last_offset + i);
|
||||
lv->mouse_activated(lv, custom, lv->mouse_activated_data);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return WIDGET_TRIGGER_ACTION_RESULT_HANDLED;
|
||||
}
|
||||
|
|
|
@ -58,8 +58,8 @@ guint scrollbar_scroll_get_line(const scrollbar *sb, int y) {
|
|||
return sb->length - 1;
|
||||
}
|
||||
|
||||
int r =
|
||||
(int)((sb->length * sb->widget.h) / ((double)(sb->length + sb->pos_length)));
|
||||
int r = (int)((sb->length * sb->widget.h) /
|
||||
((double)(sb->length + sb->pos_length)));
|
||||
int handle = sb->widget.h - r;
|
||||
double sec = ((r) / (double)(sb->length - 1));
|
||||
int half_handle = handle / 2;
|
||||
|
@ -89,6 +89,8 @@ scrollbar_trigger_action(widget *wid, MouseBindingMouseDefaultAction action,
|
|||
case MOUSE_DCLICK_DOWN:
|
||||
case MOUSE_DCLICK_UP:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -164,7 +166,7 @@ static void scrollbar_draw(widget *wid, cairo_t *draw) {
|
|||
double wh = widget_padding_get_remaining_height(wid);
|
||||
// Calculate position and size.
|
||||
double r = (sb->length * wh) / ((double)(sb->length + sb->pos_length));
|
||||
unsigned int handle = (unsigned int )(wid->h - r);
|
||||
unsigned int handle = (unsigned int)(wid->h - r);
|
||||
double sec = ((r) / (double)(sb->length - 1));
|
||||
unsigned int height = handle;
|
||||
unsigned int y = (unsigned int)(sb->pos * sec);
|
||||
|
|
|
@ -120,6 +120,8 @@ textbox_editable_trigger_action(widget *wid,
|
|||
case MOUSE_DCLICK_DOWN:
|
||||
case MOUSE_DCLICK_UP:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return WIDGET_TRIGGER_ACTION_RESULT_IGNORED;
|
||||
}
|
||||
|
|
33
source/xcb.c
33
source/xcb.c
|
@ -146,11 +146,10 @@ static xcb_visualtype_t *lookup_visual(xcb_screen_t *s, xcb_visualid_t vis) {
|
|||
* website: http://macslow.thepimp.net. I'm not entirely sure he's proud of it,
|
||||
* but it has proved immeasurably useful for me. */
|
||||
|
||||
static uint32_t *create_kernel(double radius, double deviation,
|
||||
uint32_t *sum2) {
|
||||
static uint32_t *create_kernel(int radius, double deviation, uint32_t *sum2) {
|
||||
int size = 2 * (int)(radius) + 1;
|
||||
uint32_t *kernel = (uint32_t *)(g_malloc(sizeof(uint32_t) * (size + 1)));
|
||||
double radiusf = fabs(radius) + 1.0;
|
||||
double radiusf = abs(radius) + 1.0;
|
||||
double value = -radius;
|
||||
uint32_t sum = 0;
|
||||
int i;
|
||||
|
@ -162,8 +161,9 @@ static uint32_t *create_kernel(double radius, double deviation,
|
|||
kernel[0] = size;
|
||||
|
||||
for (i = 0; i < size; i++) {
|
||||
kernel[1 + i] = (uint32_t)(INT16_MAX / (2.506628275 * deviation) *
|
||||
exp(-((value * value) / (2.0 * (deviation * deviation)))));
|
||||
kernel[1 + i] =
|
||||
(uint32_t)(INT16_MAX / (2.506628275 * deviation) *
|
||||
exp(-((value * value) / (2.0 * (deviation * deviation)))));
|
||||
|
||||
sum += kernel[1 + i];
|
||||
value += 1.0;
|
||||
|
@ -174,14 +174,13 @@ static uint32_t *create_kernel(double radius, double deviation,
|
|||
return kernel;
|
||||
}
|
||||
|
||||
inline static uint8_t rofi_uint32_uint8_range(const uint32_t v)
|
||||
{
|
||||
if ( v > UINT8_MAX){
|
||||
inline static uint8_t rofi_uint32_uint8_range(const uint32_t v) {
|
||||
if (v > UINT8_MAX) {
|
||||
return UINT8_MAX;
|
||||
}
|
||||
return (uint8_t)v;
|
||||
}
|
||||
void cairo_image_surface_blur(cairo_surface_t *surface, double radius,
|
||||
void cairo_image_surface_blur(cairo_surface_t *surface, int radius,
|
||||
double deviation) {
|
||||
uint32_t *horzBlur;
|
||||
uint32_t *kernel = 0;
|
||||
|
@ -207,7 +206,7 @@ void cairo_image_surface_blur(cairo_surface_t *surface, double radius,
|
|||
TICK();
|
||||
uint32_t sum = 0;
|
||||
kernel = create_kernel(radius, deviation, &sum);
|
||||
if ( sum == 0 ){
|
||||
if (sum == 0) {
|
||||
// This is invalid.
|
||||
g_warning("Failed to create blurring kernel.");
|
||||
g_free(kernel);
|
||||
|
@ -336,7 +335,8 @@ cairo_surface_t *x11_helper_get_screenshot_surface_window(xcb_window_t window,
|
|||
double scale = (double)size / max;
|
||||
|
||||
cairo_surface_t *s2 = cairo_surface_create_similar_image(
|
||||
t, CAIRO_FORMAT_ARGB32, (int)(reply->width * scale), (int)(reply->height * scale));
|
||||
t, CAIRO_FORMAT_ARGB32, (int)(reply->width * scale),
|
||||
(int)(reply->height * scale));
|
||||
free(reply);
|
||||
|
||||
if (cairo_surface_status(s2) != CAIRO_STATUS_SUCCESS) {
|
||||
|
@ -563,8 +563,8 @@ static int x11_is_extension_present(const char *extension) {
|
|||
// TODO add a quick check for the length of extension.
|
||||
// We know how (as it is not a user-provided string) the length
|
||||
// will always be less then 2**16
|
||||
xcb_query_extension_cookie_t randr_cookie =
|
||||
xcb_query_extension(xcb->connection, (uint16_t)strlen(extension), extension);
|
||||
xcb_query_extension_cookie_t randr_cookie = xcb_query_extension(
|
||||
xcb->connection, (uint16_t)strlen(extension), extension);
|
||||
|
||||
xcb_query_extension_reply_t *randr_reply =
|
||||
xcb_query_extension_reply(xcb->connection, randr_cookie, NULL);
|
||||
|
@ -1496,6 +1496,8 @@ static gboolean main_loop_x11_event_handler(xcb_generic_event_t *ev,
|
|||
rofi_view_maybe_update(rofi_view_get_active());
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return G_SOURCE_CONTINUE;
|
||||
}
|
||||
|
@ -1630,8 +1632,9 @@ static void x11_create_frequently_used_atoms(void) {
|
|||
for (int i = 0; i < NUM_NETATOMS; i++) {
|
||||
// we know the length of the atoms are smaller then 2**16, so cast
|
||||
// is valid.
|
||||
xcb_intern_atom_cookie_t cc = xcb_intern_atom(
|
||||
xcb->connection, 0, (uint16_t)strlen(netatom_names[i]), netatom_names[i]);
|
||||
xcb_intern_atom_cookie_t cc =
|
||||
xcb_intern_atom(xcb->connection, 0, (uint16_t)strlen(netatom_names[i]),
|
||||
netatom_names[i]);
|
||||
xcb_intern_atom_reply_t *r =
|
||||
xcb_intern_atom_reply(xcb->connection, cc, NULL);
|
||||
if (r) {
|
||||
|
|
|
@ -522,6 +522,10 @@ void config_parser_add_option(XrmOptionType type, const char *key, void **value,
|
|||
case xrm_String:
|
||||
extra_options[num_extra_options].mem = ((char *)(*value));
|
||||
break;
|
||||
case xrm_Number:
|
||||
case xrm_SNumber:
|
||||
case xrm_Boolean:
|
||||
case xrm_Char:
|
||||
default:
|
||||
extra_options[num_extra_options].mem = NULL;
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue