29#define G_LOG_DOMAIN "View"
102 *width =
WlState.monitor_width;
105 *height =
WlState.monitor_height;
118 return G_SOURCE_REMOVE;
158 state->
width = width;
168 *width = state->
width;
190 return G_SOURCE_REMOVE;
195 if (
WlState.idle_timeout == 0) {
202 if (state &&
WlState.repaint_source == 0) {
204 g_debug(
"redraw %llu",
WlState.count);
208 WlState.repaint_source = g_idle_add_full(
216 TICK_N(
"create cairo surface");
218 PangoContext *p = pango_context_new();
219 pango_context_set_font_map(p, pango_cairo_font_map_get_default());
220 TICK_N(
"pango cairo font setup");
224 PangoFontMap *font_map = pango_cairo_font_map_get_default();
226 pango_cairo_font_map_set_resolution((PangoCairoFontMap *)font_map,
235 pango_cairo_font_map_set_resolution((PangoCairoFontMap *)font_map, dpi);
238 "DPI auto-detect failed, the output is not known yet or does not "
239 "provide a physical size");
241 pango_cairo_font_map_get_resolution((PangoCairoFontMap *)font_map);
246 pango_cairo_font_map_get_resolution((PangoCairoFontMap *)font_map);
254 PangoFontDescription *pfd = pango_font_description_from_string(font);
256 pango_context_set_font_description(p, pfd);
258 pango_font_description_free(pfd);
260 PangoLanguage *l = pango_language_get_default();
261 pango_context_set_language(p, l);
286 int screen_width = 1920;
289 if (
WlState.fullscreen == TRUE) {
290 state->
width = screen_width;
298 "width", state->
width);
306 g_debug(
"Redraw view");
308 if (state->pool == NULL) {
312 if (surface == NULL) {
316 cairo_t *d = cairo_create(surface);
317 cairo_set_operator(d, CAIRO_OPERATOR_SOURCE);
319 cairo_set_source_rgba(d, 0, 0, 0, 0.0);
321 cairo_surface_set_device_scale(surface, scale, scale);
326 cairo_set_operator(d, CAIRO_OPERATOR_OVER);
346 if (
WlState.repaint_source == 0) {
347 WlState.repaint_source = g_idle_add_full(
353 if (
WlState.fullscreen == TRUE) {
376 if (
WlState.idle_timeout > 0) {
377 g_source_remove(
WlState.idle_timeout);
392 if (
WlState.repaint_source > 0) {
393 g_source_remove(
WlState.repaint_source);
415 .temp_configure_notify = NULL,
416 .temp_click_to_exit = NULL,
void display_early_cleanup(void)
guint display_scale(void)
void display_set_fullscreen_mode(void)
gboolean helper_validate_font(PangoFontDescription *pfd, const char *font)
unsigned int mode_get_num_entries(const Mode *mode)
void textbox_set_pango_context(const char *font, PangoContext *p)
void textbox_text(textbox *tb, const char *text)
RofiViewState * rofi_view_get_active(void)
void rofi_view_maybe_update(RofiViewState *state)
void input_history_save(void)
void input_history_initialize(void)
void rofi_view_pool_refresh(void)
box * box_create(widget *parent, const char *name, RofiOrientation type)
@ ROFI_ORIENTATION_HORIZONTAL
@ ROFI_ORIENTATION_VERTICAL
#define DEFAULT_MENU_WIDTH
int rofi_theme_get_position(const widget *wid, const char *property, int def)
int distance_get_pixel(RofiDistance d, RofiOrientation ori)
int rofi_theme_get_boolean(const widget *wid, const char *property, int def)
RofiDistance rofi_theme_get_distance(const widget *wid, const char *property, int def)
const char * rofi_theme_get_string(const widget *wid, const char *property, const char *def)
struct _view_proxy view_proxy
void process_result(RofiViewState *state)
struct _rofi_view_cache_state CacheState
double wayland_get_dpi_estimation(void)
void display_surface_commit(cairo_surface_t *surface)
cairo_surface_t * display_buffer_pool_get_next_buffer(wayland_buffer_pool *pool)
gboolean display_get_surface_dimensions(int *width, int *height)
void wayland_display_set_cursor_type(RofiCursorType type)
void display_buffer_pool_free(wayland_buffer_pool *self)
void display_set_surface_dimensions(int width, int height, int x_margin, int y_margin, int loc)
wayland_buffer_pool * display_buffer_pool_new(gint width, gint height)
static int rofi_get_offset_px(RofiViewState *state, RofiOrientation ori)
static void wayland_rofi_view_get_size(RofiViewState *state, gint *width, gint *height)
const view_proxy * wayland_view_proxy
static int rofi_get_location(RofiViewState *state)
static struct @367071131060133350271250111004244213234203174335 WlState
static gboolean wayland_rofi_view_reload_idle(G_GNUC_UNUSED gpointer data)
static void wayland_rofi_view_hide(void)
static void wayland_rofi_view_set_window_title(G_GNUC_UNUSED const char *title)
static void wayland_rofi_view_calculate_window_width(RofiViewState *state)
static void wayland_rofi_view_calculate_window_position(G_GNUC_UNUSED RofiViewState *state)
static void wayland_rofi_view_reload(void)
static int wayland_rofi_view_calculate_window_height(RofiViewState *state)
static void wayland_rofi_view_set_size(RofiViewState *state, gint width, gint height)
static const int loc_transtable[9]
static void wayland_rofi_view_cleanup(void)
static void wayland_rofi_view_frame_callback(void)
static void wayland_rofi_view_get_current_monitor(int *width, int *height)
static void wayland_rofi_view_ping_mouse(RofiViewState *state)
static void wayland_rofi_view_window_update_size(RofiViewState *state)
static void wayland___create_window(MenuFlags menu_flags)
static void wayland_rofi_view_queue_redraw(void)
static gboolean wayland_rofi_view_repaint(G_GNUC_UNUSED void *data)
static void wayland_rofi_view_update(RofiViewState *state, gboolean qr)
static void wayland_rofi_view_pool_refresh(void)