static int focus_get_focus_status(struct _focus *p, int *forced_mode, int *focus_status, int *autocompletion_mode) { int focus = get_focus(p, forced_mode, focus_status, autocompletion_mode); p->last_focus = *focus_status; if (!xconfig->tracking_input) p->last_focus = FOCUS_EXCLUDED; return focus; }
int xfocus_get_focus_status(struct _xfocus *p, int *forced_mode, int *focus_status) { int focus = get_focus(p, forced_mode, focus_status); if (focus == FOCUS_UNCHANGED) return p->last_focus; if (focus == FOCUS_CHANGED) p->last_focus = FOCUS_UNCHANGED; else p->last_focus = focus; return focus; }
//-----------------------------------------------------------------// void widget_progress::update() { #if 0 const slider_param& sp = param_.slider_param_; short fw = param_.plate_param_.frame_width_; if(sp.direction_ == slider_param::direction::HOLIZONTAL) { handle_offset_.x = param_.plate_param_.frame_width_; short ofs = wd_.at_mobj().get_size(hand_h_).y - wd_.at_mobj().get_size(base_h_).y; handle_offset_.y = -ofs / 2; } else if(sp.direction_ == slider_param::direction::VERTICAL) { short ofs = wd_.at_mobj().get_size(hand_h_).x - wd_.at_mobj().get_size(base_h_).x; handle_offset_.x = -ofs / 2; handle_offset_.y = param_.plate_param_.frame_width_; } if(get_focus() && param_.hand_ctrl_) { if(get_select()) { if(get_select_in()) { ref_position_ = sp.position_; ref_point_ = get_param().in_point_; } const vtx::spos size = get_rect().size; float ratio = 0.0f; vtx::spos ref = get_param().in_point_ - ref_point_; if(sp.direction_ == slider_param::direction::HOLIZONTAL) { short sz = size.x - fw * 2; short ofs; if(param_.hand_image_) { ofs = wd_.at_mobj().get_size(hand_h_).x; } else { ofs = sz * sp.handle_ratio_; } ratio = static_cast<float>(ref.x) / static_cast<float>(sz - ofs); } else if(sp.direction_ == slider_param::direction::VERTICAL) { short sz = size.y - fw * 2; short ofs; if(param_.hand_image_) { ofs = wd_.at_mobj().get_size(hand_h_).y; } else { ofs = sz * sp.handle_ratio_; } ratio = static_cast<float>(ref.y) / static_cast<float>(sz - ofs); } ratio += ref_position_; if(ratio < 0.0f) ratio = 0.0f; else if(ratio > 1.0f) ratio = 1.0f; if(sp.grid_ > 0.0f) { short step = ratio / (sp.grid_ * 0.5f); ratio = ((step + 1) / 2) * sp.grid_; } param_.slider_param_.position_ = ratio; } else if(param_.scroll_ctrl_) { const vtx::spos& scr = wd_.get_scroll(); float ratio = param_.slider_param_.position_; if(scr.y != 0) { if(sp.direction_ == slider_param::direction::HOLIZONTAL) { ratio += static_cast<float>(scr.y) * -param_.scroll_gain_; } else if(sp.direction_ == slider_param::direction::VERTICAL) { ratio += static_cast<float>(scr.y) * param_.scroll_gain_; } if(ratio < 0.0f) ratio = 0.0f; else if(ratio > 1.0f) ratio = 1.0f; if(sp.grid_ > 0.0f) { short step = ratio / (sp.grid_ * 0.5f); ratio = ((step + 1) / 2) * sp.grid_; } param_.slider_param_.position_ = ratio; } } } const vtx::spos& size = get_rect().size; if(sp.direction_ == slider_param::direction::HOLIZONTAL) { short sz = size.x - fw * 2; short ofs; if(param_.hand_image_) { ofs = wd_.at_mobj().get_size(hand_h_).x; } else { ofs = sz * sp.handle_ratio_; } handle_offset_.x = fw + sp.position_ * (sz - ofs); } else if(sp.direction_ == slider_param::direction::VERTICAL) { short sz = size.y - fw * 2; short ofs; if(param_.hand_image_) { ofs = wd_.at_mobj().get_size(hand_h_).y; } else { ofs = sz * sp.handle_ratio_; } handle_offset_.y = fw + sp.position_ * (sz - ofs); } #endif }